Perkenalan
Hi Co.Creators! Pada kesempatan kali ini, aku mau membagikan sebuah seri tutorial mengenai cara membuat REST API menggunakan Node.js. Aku juga bakal membagikan source code untuk tutorial ini di GitHub biar kamu bisa melakukan pengecekan dan komparasi apakah yang dipelajari sudah sesuai. Kamu pun bisa kasih masukan buat aku biar tutorial ini menjadi semakin sempurna dan membantu kamu dengan lebih baik lagi.
Dalam bagian pertama ini, kita akan fokus pada instalasi dan konfigurasi Node.js, serta membuat API yang simpel dengan menggunakan library Express.
Persiapan
Apabila Node.js belum diinstal pada perangkat yang digunakan, berikut tautan yang bisa kamu pakai:
- Node.js
Ketiknode -v
di Terminal. Kalau hasilnya seperti pada gambar di bawah, berarti Node.js sudah terinstal dengan baik di perangkat kamu.
Ini untuk memudahkan melakukan pengecekan pada route API yang nanti akan dibuat. Menurutku, Postman lebih nyaman digunakan karena mendukung multiple tabs. Pastikan aplikasi sudah terinstal dengan baik dengan membuka aplikasi tersebut.
Membuat CRUD API Dengan Node.js dan Express
Buat Project Baru
Kita akan membuat sebuah project baru di sebuah direktori mana pun yang diinginkan. Project ini akan dinamakan sebagai cil-nodejs-api. Kalau direktori ini sudah dibuat, buka Terminal pada direktori tersebut dan ketik npm init
.
Lanjutkan proses konfigurasi sampai selesai. Sebuah file bernama package.json akan otomatis terbuat di dalam direktori cil-nodejs-api. Tambahkan beberapa command pada property scripts pada file tersebut:
...
"scripts": {
"start": "node index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
...
Kemudian, buatlah sebuah file baru yang dinamakan index.js. File ini akan menjadi tempat dimulainya aplikasi saat dijalankan. Untuk memastikan project baru ini sudah berfungsi dengan benar, tambahkan kode berikut di index.js:
console.log("Hello world!");
Buka Terminal pada direktori cil-nodejs-api, ketik npm start
dan ketik Enter. Apabila “Hello World!” muncul seperti gambar di bawah, itu artinya project baru sudah berhasil dibuat.
Instalasi Library yang Dibutuhkan
Express
Express adalah salah satu framework Node.js yang cukup populer. Framework ini cepat dan mudah dikonfigurasi. Pada direktori cil-nodejs-api, jalankan npm i express
. Hasil seperti gambar di bawah akan muncul apabila instalasi sukses.
Hello World, dari Postman
Kembali ke file index.js. Ketika aplikasi ini di-start, kode paling awal yang akan dijalankan ada di file index.js. Kosongkan file tersebut dan tambahkan kode di bawah ini…
const express = require('express');
const app = express();
const port = 3000;
app.get('/helloworld', (req, res) => {
res.send('Hello World!')
});
app.listen(port, () => {
console.log(`cli-nodejs-api listening at http://localhost:${port}`)
});
Pertama, lakukan import dari library Express dengan const express = require('express');
. Kemudian inisiasi framework tersebut pada const app = express();
.
Kedua, kita membuat sebuah endpoint baru GET /helloworld
pada app.get('/helloworld')
. Lalu tambahkan callback function yang akan dieksekusi saat endpoint ini dipanggil dan akan memberikan hasil “Hello World!”. Fungsi res.send()
digunakan untuk memberikan respons dari endpoint yang dipanggil tersebut.
Baca juga: Menyulap TV Lama Jadi Smart TV, Memang Bisa?
Terakhir, app.listen(port)
akan dijalankan dan selalu dalam “mode stand-by” untuk mendapatkan request yang dikirim oleh user.
Buka Terminal pada root directory cil-nodejs-api, kemudian jalankan npm start
. Apabila sudah sesuai dengan gambar di bawah, berarti aplikasi berhasil dijalankan.
Kemudian buka Postman / Insomnia untuk memanggil endpoint ini: GET localhost:3000/helloworld
. Kalau semuanya lancar, hasil yang muncul akan seperti gambar di bawah ini:
Kalau langkah ini sudah berhasil dilakukan, membuat endpoint baru harusnya sudah bisa dilakukan dengan sangat mudah.
CRUD + Login
Kita sudah memastikan bahwa konfigurasi yang dilakukan sudah benar. Sekarang kita lanjutkan membuat beberapa fungsi utama yang diperlukan:
- Create:
POST /user
Untuk membuat satu user baru. - Read:
- List User:
GET /user
Untuk menampilkan satu atau banyak user yang terdaftar. - Detil User:
GET /user/{id}
Untuk menampilkan satu user spesifik.
- List User:
- Update:
PATCH /user
Untuk mengubah atau menambahkan detail user secara spesifik. - Delete:
DELETE /user/{id}
Untuk menghapus salah satu user spesifik. - Login:
POST /login
Untuk melakukan login.
Untuk bagian ini, seluruh fungsi ini hanya akan dibuat endpoint-nya dan dapat menerima input yang akan disesuaikan untuk masing-masing endpoint.
Membuat User Baru (Create)
Untuk membuat user baru, gunakan endpoint POST /user. Berikut contoh code yang digunakan di index.js:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
app.use(bodyParser.json());
app.post('/user', (req, res) => {
res.send({
message: 'CREATE NEW USER: POST /user',
body: req.body
});
});
app.listen(port, () => {
console.log(`cli-nodejs-api listening at http://localhost:${port}`)
});
Perhatikan bahwa ada library baru yang di-import bernama body-parser. Library ini akan membantu untuk melakukan parsing input melalui body dalam bentuk JSON. Untuk melakukan instalasi body-parser, jalankan npm i body-parser
di Terminal. Gunakan body-parser pada Express dengan app.use(bodyParser.json());
.
Baca juga: Tech Monday Updates
Kemudian, gunakan app.post(‘/user’) untuk membuat endpoint POST /user
. Lalu tambahkan callback function untuk memberikan response bahwa endpoint sudah terpanggil dengan sukses. Perhatikan bahwa pada req
, terdapat property body
yang akan digunakan sebagai input nantinya.
Jalankan npm start di Terminal, lalu buka aplikasi Postman / Insomnia. Lakukan testing pada POST http://localhost:3000/user
. Hasil yang didapatkan seharusnya seperti gambar berikut.
Mendapatkan User (List dan Detail) (Read)
Masih di index.js. Kamu akan menambahkan endpoint untuk mendapatkan user. Gunakan GET /user
untuk daftar user dan GET /user/:id
untuk mendapatkan user spesifik. Tambahkan kedua endpoint baru tersebut setelah POST /user
. Lihat contoh berikut.
... app.post('/user', (req, res) => {...}); app.get('/user', (req, res) => { res.send('GET USER LIST: GET /user'); }); app.get('/user/:id', (req, res) => { res.send('GET USER: GET /user/' + req.params.id); }); app.listen(port, () => {...}); ...
Pada endpoint GET /user
, sementara ini caranya masih sama seperti pada “Hello World”.
Namun, perhatikan GET /user/:id
, :id
akan digunakan untuk mendapatkan id dari seorang user. Contoh implementasinya adalah /user/123
atau /user/84jdk
. Nilai dari :id dapat diambil dari req
, seperti pada body
, menggunakan req.params.id
.
Apabila sudah ditambahkan, jalankan npm start
dan buka aplikasi Postman / Insomnia. Hasil yang didapatkan harusnya seperti pada gambar berikut.
GET /user
GET /user/:id
Mengubah Detail Satu User (Update)
Berikutnya, kita akan tambahkan sebuah endpoint PATCH /user/:id
untuk mengubah detail data user. Tambahkan kode berikut setelah GET /user/:id
:
...
app.get('/user/:id', (req, res) => {...});
app.patch('/user/:id', (req, res) => {
const msg = {
message: 'UPDATE USER: PATCH /user/' + req.params.id,
body: req.body
};
res.send(msg);
});
app.listen(port, () => {...});
...
Untuk mendapatkan endpoint PATCH /user/:id
, gunakan app.patch('/user/:id')
. Lalu tambahkan sebuah callback function seperti biasa. Dapatkan req.params.id
dan req.body
dari parameter req
untuk diproses nantinya. Terakhir, berikan response bahwa endpoint sudah sukses terpanggil.
Kembali jalankan npm start
di Terminal dan buka aplikasi Postman / Insomnia. Hasilnya kurang lebih seperti gambar berikut.
Menghapus Satu User (Delete)
Berikutnya, kita akan tambahkan satu endpoint DELETE /user/:id yang digunakan untuk menghapus satu user. Lihat contoh berikut.
...
app.patch('/user/:id', (req, res) => {...});
app.delete('/user/:id', (req, res) => {
res.send('DELETE USER: DELETE /user/' + req.params.id);
});
app.listen(port, () => {...});
...
Gunakan app.delete('/user/:id')
untuk membuat endpoint DELETE /user/:id
. Lalu, pada callback function app.delete()
, dapatkan value dari id menggunakan req.params.id
.
Jalankan npm start
, lalu kembali buka aplikasi Postman / Insomnia. Hasil pada endpoint tersebut seharusnya seperti gambar di bawah.
Login
Untuk POST /login
, cara yang digunakan sama seperti pada POST /user
. Bedanya adalah pada JSON body pada POST /login
hanya perlu username dan password saja. Gunakan app.post('/login')
untuk membuat endpoint ini.
Penutup
Gimana? Membuat sebuah REST API dengan Node.js itu gak susah, kan? Dalam tutorial ini, kamu sudah mempelajari hal-hal berikut:
- Melakukan persiapan untuk memulai project Node.js.
- Melakukan inisiasi project Node.js baru.
- Melakukan instalasi library yang diperlukan seperti Express dan body-parser.
- Membuat beberapa endpoint baru yang bisa diakses sebagai API.
Kemudian, ini adalah source code yang bisa diunduh dan bisa dijadikan contoh sesuai dengan tutorial ini. Semoga artikel ini membantu kamu ya, para Co.Creators!
Comments ( 0 )