Membuat REST API di NodeJS
Apa itu REST API? Di sana terdapat dua
kata yaitu REST dan API. REST(REpresentational State Transfer) adalah desain
arsitektur yang menyediakan standar cara berkomunikasi antar sistem komputer di
dalam web sehingga komunikasi antar komputer menjadi lebih mudah, seperti itu
sederhanannya. Sedangkan untuk API(Application Programming Interface)
sebenarnya hanya fungsi atau method, ketika kalian membuat fungsi
atau method di bahasa pemrograman apapun itu sudah bisa disebut API.
Jadi apa itu REST API? Yap, REST API adalah API yang cara
mengimplementasikannya menggunakan konsep REST. Simpelnya seperti ini, biasanya
untuk mengimplementasikan suatu API kita hanya tinggal menulis nama fungsi
atau method-nya saja, sedangkan jika menggunakan konsep REST, kita harus
melakukannya menggunakan HTTP Request.
Tujuannya untuk menjadikan system dengan
performa yang baik, cepat, dan mudah untuk dikembangkan (scale) terutama dalam
pertukaran dan komunikasi data.
Kenapa
perlu membuat RESTful API?
Jika Anda perhatikan arsitektur
tradisional komunikasi data antara client dan server terlihat seperti gambar
berikut:
Dimana
client mengirimkan request ke server melalui HTTP Request, dan server
memberikan response melalui HTTP Response. Response yang diberikan oleh server,
biasanya berformat HTML.
Nah,
bayangkan jika Anda harus mengembangkan website Anda ke aplikasi Mobile seperti
Android atau iOS. Anda tahu aplikasi Android ataupun iOS tidak membutuhkan HTML
sebagai response dari server.
Karena
Android dan iOS menggunakan bahasa pemrograman yang berbeda dan tidak mengenal
HTML.
Oleh
sebab itu, kita perlu membuat RESTful API. RESTful API ini akan menjadi
jembatan komunikasi data antara client dan server. Sehingga, server tidak lagi
mengirimkan HTML sebagai response, melainkan hanya data. Ya, hanya data. Hal
inilah yang dapat menghemat bandwidth server.
Response
dalam bentuk data inilah yang dapat digunakan untuk berbagai macam platform
dari aplikasi yang berbeda bahasa permrograman. Response dalam bentuk data ini,
biasanya berformat JSON atau XML.
Akan tetapi, yang paling umum digunakan adalah JSON.
pada ulasan kali ini akan membahasa megenai pembuatan Rest API dengan menggunakan :
pada ulasan kali ini akan membahasa megenai pembuatan Rest API dengan menggunakan :
·
NodeJS
·
Mysql native driver untuk nodejs
·
Express
Web
services yang akan dibuat pada ulasan ini memanipulasi data “note” atau
catatan. Sebuah catatan memiliki isi dari note dan juga tanggal pembuatan dari
catatan tersebut. Fungsi yang akan dicakup adalah :
1. Menambahkan
note baru dengan menggunakan http post
2. Mengubah
note yang sudah ada dengan menggunakan http put
3. Menghapus
note yang telah ada dengan menggunakan http delete
4. Melihat
note dengan menggunakan http get
Untuk
memperjelas maka dibawah ini adalah struktur tabel (sql) dari note.
1. Membuat project node
2. Install module
module yang
dibutuhkan dan lakukan inisialisasi pada app.js (tergantung konfigurasi npm
init anda). Berikut ini adalah modul-modul yang dibutuhkan :
·
Express,
untuk menghandle routing & http agar dapat menjadi sebuah web
services.
·
Mysql,
sebagai database yang digunakan untuk menyimpan data note
·
Bodyparser,
web services yang dibuat akan menerima data(request body) berupa JSON dan
output berupa JSON.
·
Express-validator,
membantu memvalidasi(cek apakah kosong, dsb) request body / data http.
3. Setting
mysql dan melakukan koneksi ke database
Yang perlu
didefinisikan adalah autentikasi mysql (host, user, password dan database)
seperti pada umumnya. Kemudian , panggil fungsi connect pada instances
connection untuk menyambungkan ke mysql. Fungsi connect memiliki sebuah
callback error yang dapat digunakan sebagai kondisi saat node gagal melakukan
koneksi ke mysql.
4 . Membuat “note” router module
fungsi file ini adalah untuk
mendefinisikan rules atau aturan dari router. Sql query akan dieksekusi melalui
router module dari express ini. Sehingga controller dan model bercampur menjadi
satu file.
Fungsi query pada instances connection
yang kita berikan(pass) dari router ke router module(untuk penjelasan lihat
langkah ke-4) memiliki tiga buah callback yaitu :
1. err
-> callback yang berisi informasi mengenai error, misalnya terjadi sql query
maka informasi error akan tersimpan pada callback ini
2. fields
-> callback yang menginformasikan apakah ada respon dari database mysql.
Sejauh yang saya tahu fields akan kosong ketika tidak terdapat data yang
dihasilkan oleh sql query. Sehingga cocok untuk menfilter apakah query
tersebut match dengan data yang ada atau tidak.
3. result
-> hasil dari sql query akan disimpan disini.
5. Menghubungkan Router module dengan router
Selain menghubungkan routermodule dengan
router, yang dilakukan di sini adalah menginjeksi note routermodule dengan
instances connection yang kita panggil pada app.js Tujuannya adalah agar
instances connection ini dapat digunakan bersama-sama dimodul tanpa pada setiap
modul memanggil kembali/membuat instances kembali. Instances connection inilah
yang digunakan untuk melakukan sql query.
0 Komentar