Build REST API with NodeJS + ExpressJS + MongoDB (PART 1)

FeaturedImage_REST.png

Pengenalan REST API

hay guys, kita berjumpa lagi pada artikel ane kali ini, uda lama juga fokum dari aktivitas share knowledge, okkey guys kali ini ane akan membahas gimana sih cara bikin REST API, eeiiitss bukan REST itu bukan istirahat ya, dan juga API itu bukan fire, hehe..
jadi REST itu kependekan dari Respresentational State Transfer, artinya standar arsitektur komunikasi berbasis web (web service) yang sering diterapkan dalam pengembangan layanan berbasis web. REST menggunakan HTTP (Hypertext Transfer Protocol) sebagai protokol komunikasi/pertukaran data, dimana tujuannya untuk menjadikan sistem yang memiliki performa yang baik, cepat dan mudah untuk di kembangkan (scale) terutama dalam pertukaran dan komunikasi data. REST pertama kali diperkenalkan oleh Roy Fielding pada tahun 2000. naahh, looh trus REST API apaan donk…??? iya sabarrr :v

REST API adalah implementasi dari API (Application Programming Interface). API merupakan sebuah teknologi yang memfasilitasi pertukaran informasi atau data antara dua atau lebih aplikasi perangkat lunak.

Untuk membangun REST API umumnya terdapat 4 method yaitu GET, POST, PUT, DELETE. konsepnya sama seperti CRUD (Create, Read, Update, Delete).
Ingaatt ya guys, persamaannya GET is Read, POST is Create, Update is PUT, Delete ya Delete lah :D.. selengkapnya sebagai berikut :

GET : digunakan untuk mengambil/me-retrieve data, baik data berupa collection maupun data berupa object,
contoh : 
api/cats : untuk semua mengambil data cats.
api/cats/1 : untuk mengambil data cats yang mempunyai identitas 1

POST : digunakan untuk menciptakan/membuat resource baru,
contoh :
api/cats : untuk membuat data baru dengan method POST, disertai dengan menuliskan data misalnya dengan format JSON sebagai berikut:
{
id : 1,
name : “kitty”,
age : 1
}

PUT : digunakan untuk mengubah resource yang ada, atau bisa juga untuk membuat resource baru,
contoh :
api/cats/1 : cara hampir sama cuman pada method PUT ditambahkan identitas (id) untuk mengubah data datanya, disertai juga dengan mengedit data JSON sebagai berikut:
{
id : 1,
name : “kitty Update”,
age : 1.5
}

DELETE : digunakan untuk menghapus resource 
contoh :
api/cats/1 : cara nya sama dengan pada proses edit, hanya saja yang perlu diubah adalah method nya menjad delete.
awaass, hati” guys kalo menghapus :)

Oiya ane mau jelasin juga web service, yaitu standar yang digunakan untuk melakukan pertukaran data antar aplikasi atau sistem, karena aplikasi yang melakukan pertukaran data bisa ditulis dengan bahasa pemrograman yang berbeda atau berjalan pada platform yang berbeda. Contoh implementasi dari web service antara lain adalah SOAP dan REST, pahamkan??

Web service yang berbasis arsitektur REST kemudian dikenal sebagai RESTful web services. Layanan web ini menggunakan metode HTTP untuk menerapkan konsep arsitektur REST.

Keuntungan REST

  • bahasa dan platform agnostic
  • lebih sederhana/simpel untuk dikembangkan ketimbang SOAP
  • mudah dipelajari, tidak bergantung pada tools
  • ringkas, tidak membutuhkan layer pertukaran pesan (messaging) tambahan
  • secara desain dan filosofi lebih dekat dengan web

Kelemahan REST

  • Mengasumsi model point-to-point komunikasi — tidak dapat digunakan untuk lingkungan komputasi terdistribusi di mana pesan akan melalui satu atau lebih perantara
  • Kurangnya dukungan standar untuk keamanan, kebijakan, keandalan pesan, dll, sehingga layanan yang mempunyai persyaratan lebih canggih lebih sulit untuk dikembangkan (“dipecahkan sendiri”)
  • Berkaitan dengan model transport HTTP

Cara Kerja RESTful web services

Sebuah client mengirimkan sebuah data atau request melalui HTTP Request dan kemudian server merespon melalui HTTP Response. Komponen dari http request :

  • Verb, HTTP method yang digunakan misalnya GET, POST, DELETE, PUT dll.
  • Uniform Resource Identifier (URI) untuk mengidentifikasikan lokasi resource pada server.
  • HTTP Version, menunjukkan versi dari HTTP yang digunakan, contoh HTTP v1.1.
  • Request Header, berisi metadata untuk HTTP Request. Contoh, type client/browser, format yang didukung oleh client, format dari body pesan, seting cache dll.
  • Request Body, konten dari data.

Sedangkan komponen dari http response :

  • Status/Response Code, mengindikasikan status server terhadap resource yang direquest. misal : 404, artinya resource tidak ditemukan dan 200 response OK.
  • HTTP Version, menunjukkan versi dari HTTP yang digunakan, contoh HTTP v1.1.
  • Response Header, berisi metadata untuk HTTP Response. Contoh, type server, panjang content, tipe content, waktu response, dll
  • Response Body, konten dari data yang diberikan.

Kesimpulan

REST API adalah teknologi yang memudahkan para web developer jaman now sebagai penyedia resource (sumber data/daya) yang diperuntukan untuk client, bisa itu android maupun IOS.
sekian guys, see you next story….:)

Referensi

https://dumbways.id/
https://www.codepolitan.com/mengenal-restful-web-services
https://www.codepolitan.com/belajar-membuat-rest-api-sederhana-dengan-nodejs-expressjs-dan-mongodb-57cb1b83e8803-106
https://www.codepolitan.com/mengenal-apa-itu-web-api-5a0c2855799c8