Disini saya mencoba membuat RESTfull webservice secara sederhana tanpa menggunakan database.
Pertama, Buat folder project Anda lalu buat file JSON sebagai database dengan nama users.json, lalu simpan data seperti berikut
{ "user1" : { "name" : "mahesh", "password" : "password1", "profession" : "teacher", "id": 1 }, "user2" : { "name" : "suresh", "password" : "password2", "profession" : "librarian", "id": 2 }, "user3" : { "name" : "ramesh", "password" : "password3", "profession" : "clerk", "id": 3 } }
Dari database diatas, saya akan membuat sebuah RESTfull sederahana dengan metode sebagai berikut
No | URI | HTTP Method | POST body | Result |
---|---|---|---|---|
1 | listUsers | GET | kosong | Menampilkan semua user |
2 | addUser | POST | JSON String | Menambahkan user |
3 | deleteUser | DELETE | JSON String | Menghapus user |
4 | :id | GET | kosong | Menampilkan detil user |
List Users
Silakan buat file server.js dengan isi code sebagai berikut
var app = express(); var fs = require("fs"); app.get('/listUsers', function (req, res) { fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { console.log( data ); res.end( data ); }); }) var server = app.listen(8080, "192.168.0.108") //ganti dengan IP ANDA
Anda dapat mencoba menjalankan file server.js dengan perintah
node server.js
Setelah aplikasi berjalan, silakan akses browser Anda dengan alamat IP 192.168.0.108/listUsers (sesuaikan dengan IP Anda), maka browser akan menampilkan seluruh data yang terdapat pada database users.json
Add User
Untuk menambahkan user, silakan tambahkan baris program berikut sebelum variable server
var user = { "user4" : { "name" : "mohit", "password" : "password4", "profession" : "teacher", "id": 4 } } app.post('/addUser', function (req, res) { // First read existing users. fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { data = JSON.parse( data ); data["user4"] = user["user4"]; console.log( data ); res.end( JSON.stringify(data)); }); })
Untuk mencobanya, silakan restart ulang server nodejs Anda terlebih dahulu. Setelah itu silakan gunakan aplikasi klien untuk uji coba RESTfull seperti Postman. Disini saya menggunakan Postman.
Pada aplikasi Postman, silakan masukkan URL http://192.168.0.108/addUser (sesuaikan dengan IP Server Anda) dengan metode POST
Show Detail
Untuk menampilakn detil suatu data, silakan tambahkan kode program berikut pada file server.js
app.get('/:id', function (req, res) { // First read existing users. fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { var users = JSON.parse( data ); var user = users["user" + req.params.id] console.log( user ); res.end( JSON.stringify(user)); }); })
Untuk melakukan test, silakan akses browser Anda dengan alamat IP 192.168.0.108/2 (sesuaikan dengan IP Anda), maka browser akan menampilkan detil data user ke-2. Anda dapat mengganti id dengan mengganti nilai id pada URI.
Delete
Untuk menghapus data, silakan tambahkan kdoe program berikut pada file server.js
var id = 2; app.delete('/deleteUser', function (req, res) { // First read existing users. fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { data = JSON.parse( data ); delete data["user" + id]; console.log( data ); res.end( JSON.stringify(data)); }); })
Untuk melakukan test, buka aplikasi Postmand dan masukkan URL http://192.168.0.108/deleteUser (sesuaikan dengan IP Server Anda) dengan metode DELETE
All Source Code
Kode program secara keseluruhan adalah seperti ini
var app = express(); var fs = require("fs"); var user = { "user4" : { "name" : "mohit", "password" : "password4", "profession" : "teacher", "id": 4 } } app.post('/addUser', function (req, res) { // First read existing users. fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { data = JSON.parse( data ); data["user4"] = user["user4"]; console.log( data ); res.end( JSON.stringify(data)); }); }) app.get('/listUsers', function (req, res) { fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { console.log( data ); res.end( data ); }); }) app.get('/:id', function (req, res) { // First read existing users. fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { var users = JSON.parse( data ); var user = users["user" + req.params.id] console.log( user ); res.end( JSON.stringify(user)); }); }) var id = 2; app.delete('/deleteUser', function (req, res) { // First read existing users. fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { data = JSON.parse( data ); delete data["user" + id]; console.log( data ); res.end( JSON.stringify(data)); }); }) var server = app.listen(8080, "192.168.0.108")
Sekian, semoga membantu
Referensi
https://www.tutorialspoint.com/nodejs/nodejs_restful_api.htm