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 jangan sampai pusing hanya karena istilah :D.
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.
Sebelum mulai pastikan komputermu sudah ter-install:
- Node/NPM
- MongoDB
- Postman
Note: Jika kamu menggunakan Windows, saya anjurkan untuk menginstall UNIX-like environment seperti Cygwin
Oke, ayo mulai!
Install Library
Sebelumnya kita buat terlebih dahulu folder untuk aplikasi REST API kita, buka terminal dan jalankan command:mkdir men-rest-api && cd men-rest-api
Note: Kenapa 'MEN'? Karena tech stacks yang kita pakai MongoExpressNode! :D
Selanjutnya kita akan men-generate file package.json
npm init
Kamu bisa tekan enter pada semua pertanyaan untuk mengatur semuanya dengan setting-an default.
Setelah proses generate file package.json selesai, kita bisa mulai meng-install library yang kita butuhkan untuk aplikasi.
npm install --save express body-parse mongoose
Di command yang kita jalankan sebelumnya, kita meng-install 3 library
- express (ExpressJS)
Di website resminya tertulis "Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.", jadi intinya ExpressJS adalah web framework untuk NodeJS yang memiliki banyak fitur yang akan memudahkan kita dalam pengembangan aplikasi web dan mobile. - body-parser
Library ini digunakan sebagai middleware yang akan membantu kita dalam mem-parsing request body dari user atau client, sehingga memudahkan kita dalam mengakses request body. - mongoose
Tertulis di website resminya "Elegant mongodb object modeling for nodejs". Library ini akan banyak membantu kita dalam berkomunikasi dengan database mongodb.
npm install --save-dev @babel/core @babel/node @babel/preset-env nodemon
- Babel
Babel adalah library yang biasa digunakan untuk meng-convert code javascript yang menggunakan fitur ECMAScript 2015+ ke versi javascript sebelumnya. Dikarenakan NodeJS belum sepenuhnya memiliki fitur dari ECMAScript 2015, kita harus menggunakan Babel untuk meng-convertnya. - @babel/core core compiler babel yang akan meng-convert code javascript kita.
- @babel/node built-in CLI yang digunakan untuk meng-compile file melalui command line.
- @babel/preset-env jadi library ini membuat kita bisa menggunakan syntax ECMAScript terbaru tanpa harus me-manage transformasi ECMAScript versi berapa yang dibutuhkan browser atau target kita.
- Nodemon
Nodemon adalah library yang berguna untuk otomatis me-restart server node ketika ada perubahan yang terjadi dalam source code kita.
Let's Code!
Pertama kita akan lebih banyak mengkonfigurasi aplikasi REST API kita, seperti menggunakan body-parser untuk mem-parsing request body yang masuk, connect ke database, menjalankan server dan meng-import file route(kita akan membuatnya setelah ini).
Selanjutnya kita akan membuat file route yang telah kita import sebelumnya. File route ini bertugas untuk menentukan perintah apa yang akan dijalankan sesuai dengan URL dari HTTP Request yang diterima.
route.js
Setelah itu kita akan membuat controller yang berfungsi untuk meng-handle dan memproses request yang masuk seperti mengambil list todo dari database, membuat todo baru ke database, menghapus todo dan meng-update todo.
controller.js
Selanjutnya buat file model yang berisi schema database mongodb kita.
model.js
Terakhir kita akan membuat script agar ketika aplikasi kita dijalankan otomatis menggunakan nodemon dan babel.
package.json
Test! :D
Jalankan command npm start di dalam directory aplikasi REST API kita dan kita bisa langsung masuk ke http://localhost:3000 untuk melihat hasilnya.
POST [/api] Membuat todo baruPUT [/api/{_id}] Meng-update todo
GET [/api/{_id}] Mengambil todo berdasarkan _id
Note: Kalian bisa melihat keseluruhan code di Github
Referensi:
- https://medium.com/@vipinswarnkar1989/mern-stack-crud-app-using-create-react-app-react-redux-3299059db793
- https://www.codecademy.com/articles/what-is-rest
- https://mongoosejs.com/
- https://github.com/expressjs/body-parser