Pages

Membuat REST API Menggunakan MEN (MongoDB, ExpressJS, NodeJS)

Jumat, 05 Oktober 2018


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.
Selain meng-install library yang dibutuhkan untuk aplikasi kita juga akan meng-install library yang akan membantu kita saat proses development.
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).
index.js
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.


Untuk test apakah REST APInya berjalan kita akan menggunakan Postman.
POST [/api] Membuat todo baru


GET [/api/] Mengambil semua todo


PUT [/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

3 komentar:

  1. Hahaha iya banyak yang bilang gitu

    BalasHapus
  2. export const deleteTodo = (request, response)=>{
    todo.findByIdAndRemove({ _id:request.params.id}).exec((error, todo)=>{
    if(error){
    return response.json({
    'success':false,
    'message':'terjadi Error',
    error
    })
    }
    if(todo.length>0){
    return response.json({
    'succcess':true,
    'message':`Berhasil Mendapatkan todo dengan Id ${request.body.id}`,
    todo
    })
    } else{
    return response.json({
    'success':true,
    'message':`Tidak ada dengan Id ${request.body.id}`,
    })
    }
    })
    }

    // koreksi min yang bagian message mimin pake petik '_' seharusnya pake petik `_` agar ${request.body.id} terbaca

    BalasHapus