RESTful API, apaan tuh?

Membahas pengertian tentang RESTful API.

Hudya
4 min readApr 29, 2019

Hello fellas! Kali ini yuk kita bahas tentang RESTful API. Mungkin di tutorial gue yang Laravel 5.4 : RESTful API serta Lumen 5.4 : RESTful API kita dah sama-sama belajar cara buat API.

Tapi pernah ngga sih kepikiran sebenernya RESTful api itu apasih? Coba kalo gue tanya reader yang lagi baca, RESTful itu sebenernya apasih?

Ea bingung wkwkwk. Mungkin sebagian mikirnya API dan RESTful API itu sama, ya ngga salah sih, emang bener sama.

REST (Representional State Transfer) adalah suatu arsitektur metode komunikasi yang menggunakan protokol HTTP untuk pertukaran data dan metode ini sering diterapkan dalam pengembangan aplikasi. Dimana tujuannya adalah untuk menjadikan sistem yang memiliki performa yang baik, cepat dan mudah untuk di kembangkan (scale) terutama dalam pertukaran dan komunikasi data. — Developer Kudo

Menurut pengertian salah satu developer Kudo sih itu secara teori, ya engga salah juga sih. Emang bener kok. Okedeh kita akan bahas secara langsung.

Pernah ketemu developer (maaf) yang oon? Pasti pernah. Semua developer yang jago, awalnya juga dari Oon kok, ke oon-an itu lahir dari ketidaktahuan, maka kalo tidak tahu ya kita tempe aja hehehe maksudnya ya dicari tau atuh kalo nyari tahu mah dipasar *oke skip.

Nah biasanya untuk developer yang noob (kita ganti oon dengan noob), biasanya mereka akan buat routes di API sesuka hati mereka, seolah-olah dunia ini punya mereka yang lain cuma ngontrak. Mereka ngga akan pikirin tuh cara membuat penamaan route yang baik dan tidak akan menyakitkan mata para frontend developer atau yang akan make API nya.

Umumnya, route yang baik itu menggunakan noun (kata benda), jangan pake VERB (ini salah banget karena ngga enak dibaca!!!!).

Terus sebagian dari mereka suka banget pake bahasa indonesia buat routes, ih bukan tidak nasionalisme ya, tapi ngga enak dibaca! Asli deh, ngebuat routes dengan nama /tambahkontak itu sangat tidak readable! Tapi ini prinsip loh ya, mungkin ada punya pandangan beda.

As example, enakan mana baca route contact atau contacting? Orang waras pasti akan milih contact, karena itu kata benda. Contoh verb adalah misalnya ‘break’, ya ngapain nama route break? Aneh-aneh saja.

Routes yang baik akan menggunakan kata kerja seperti store, update, show, dan delete karena kata ini lebih enak dibaca dan mudah sekali dicerna tanpa perlu belajar S3 ke Harvard hehehe.

Nah kembali lagi, fungsi RESTful API itu apa? Sebenernya REST itu memanfaatkan empat metode di HTTP, yaitu:

  1. GET
    The GET method requests a representation of the specified resource. Requests using GET should only retrieve data. HEAD The HEAD method asks for a response identical to that of a GET request, but without the response body.
  2. POST
    The POST method is used to submit an entity to the specified resource, often causing a change in state or side effects on the server.
  3. PUT
    The PUT method replaces all current representations of the target resource with the request payload.
  4. DELETE
    The DELETE method deletes the specified resource.

Ada lagi method lainnya, yaitu:

CONNECT
The CONNECT method establishes a tunnel to the server identified by the target resource.

OPTIONS
The OPTIONS method is used to describe the communication options for the target resource.

TRACE
The TRACE method performs a message loop-back test along the path to the target resource.

PATCH
The PATCH method is used to apply partial modifications to a resource.

sumber: https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods

Nah kalo tadi ngomongin soal metode HTTP, maka kita sekarang ngomongin cara buat routes yang baik, nah beberapa developer noob kadang suka buat routes seperti dibawah ini.

GET /get_all_kontak
GET /kontak_detail/{id}
POST /tambahkontak
POST /update_kontak/{id}
POST /deletekontak/{id}

nah ada baiknya semua itu disimpan dalam satu URL saja yaitu kontak menjadi

GET /kontak
GET /kontak/{id}
POST /kontak/store
POST /kontak/update/{id}
POST /kontak/delete/{id}

Lebih baik lagi kalo ngikutin sesuai kaidah REST API.

GET /kontak
GET /kontak/{id}
PUT /kontak/{id}
POST /kontak
DELETE /kontak/{id}

Fungsi GET dengan ID dan tanpa ID itu terlihat jelas sekali perbedaannya, jika dengan ID berarti kita mencari sesuai dengan ID, sedangkan tanpa ID maka kita mengambil semua data.

Fungsi PUT pada umumnya adalah untuk menambahkan data ke database, karena PUT pada umumnya tidak perlu menggunakan form-data, apalagi pakenya di javascript. Biasanya PUT menggunakan x-www-form-urlencoded atau JSON. Sedangkan POST biasanya menggunakan form-data sehingga dapat melakukan upload file. Nah form-data ini cukup besar untuk dibawa ke javascript, makanya kalo buat API dengan NodeJS umumnya kita akan menggunakan x-www-form-urlencoded atau JSON, mereka lebih ringan loh. Nah fungsi DELETE ya jelas sekali untuk ngehapus data.

Tapi penjelasan saya diatas ini cuma masalah sudut pandang loh, ada sebagian developer yang menggunakan POST saja kok tanpa PUT dan DELETE. Selama URL-nya readable, tidak ribet dan sudah sesuai kesepakatan tim saya rasa ya sah-sah aja.

Kesimpulan, RESTful API sebenernya metode untuk ngebuat API sesuai dengan metode HTTP sehingga routes API menjadi lebih indah, terstruktur, readable serta tidak banyak memakan kata, karena dengan menggunakan empat metode HTTP kita bisa menyingkat semua URL dengan URL yang sama dan hanya beda metode.

Oke ini aja yang bisa saya sampaikan, semoga bermanfaat ^^

--

--

Hudya

Which is more difficult, coding or counting? Not both of them, the difficult one is sharing your knowledge to people without asking the payment.