REST is acronym for REpresentational State Transfer. It is architectural style for distributed hypermedia systems and was first presented by Roy Fielding in 2000 in his famous dissertation.
Introduction
REST (Representional State Transfer) adalah suatu arsitektur metode komunikasi yang menggunakan protokol HTTP untuk pertukaran data dan metode ini sering diterapkan dalam pengembangan aplikasi.
API (Application Protocol Interface) adalah kumpulan dari subroutine definitions, protocol dan juga tools untuk berkomunikasi data antar aplikasi software.
Jadi bisa dibilang, REST itu adalah salah satu dari desain arsitektur di dalam API.
Adapun metode HTTP yang secara umum dipakai dalam REST api adalah:
GET
TheGET
method requests a representation of the specified resource. Requests usingGET
should only retrieve data.HEAD
TheHEAD
method asks for a response identical to that of aGET
request, but without the response body.POST
ThePOST
method is used to submit an entity to the specified resource, often causing a change in state or side effects on the server.PUT
ThePUT
method replaces all current representations of the target resource with the request payload.DELETE
TheDELETE
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.
Cara Kerja
Pertama harus ada sebuah REST server yang akan menyediakan resource/data. Sebuah REST client akan membuat HTTP request ke server melalui sebuah global ID atau URIs dan server akan merespon dengan mengirimkan balik sebuah HTTP response sesuai yang diminta client.
Apa aja komponen dari HTTP request:
- HTTP method seperti GET, POST, PUT, DELETE dll sesuai dengan tugasnya masing-masing
- URI untuk mengetahui lokasi data di server
- HTTP Version, seperti HTTP v1.1
- Request Header, berisi metadata seperti Authorization, tipe client dan lain
- Request Body, data yang diberikan client ke server seperi URI params
Apa saja komponen dari HTTP response:
- Response Code, status server terhadap request yang diminta seperti 200, 401, 404 dan lainnya.
- HTTP Version
- Response Header yang berisi meta data seperti contect type, cache tag dan yang lainnya.
- Repsonse Body, data/resource yang diberikan oleh server baik itu berupa text, json ataupun xml
Kelebihan
- Bisa digunakan oleh banyak bahasa pemroggraman dan banyak platform
- Lebih simple dibandingkan dengan SOAP
- Mudah dipelajari
- Menggunakan protokol HTTP, dan HTTP ada dimana-mana
Kekurangan
- Waktu akses yang biasanya lebih lama dibandingkan dengan native library
- Lebih rentan dengan serangan keamanan karena harus melewati protocol HTTP