Definisi RESTFul
- REST (REpresentational State Transfer) adalah suatu arsitektur metode komunikasi yang sering diterapkan dalam pengembangan layanan berbasis web yang memungkinkan untuk membangun API (Application Programming Interfaces) yang lebih sederhana, skalabel, dan lebih fleksibel. Layanan berbasis web yang menggunakan metode HTTP pada arsitektur REST semacam itu dinamakan RESTful APIs atau REST APIs.
- Arsitektur REST, yang umumnya dijalankan via HTTP (Hypertext Transfer Protocol), melibatkan proses pembacaan laman web tertentu yang memuat sebuah file XML atau JSON. File inilah yang menguraikan dan memuat konten yang hendak disajikan. Setelah melalui sebuah proses definisi tertentu, konsumen akan bisa mengakses antarmuka aplikasi yang dimaksudkan.
- Pada arsitektur REST, REST server menyediakan resources (sumber daya/data) dan REST client mengakses dan menampilkan resource tersebut untuk penggunaan selanjutnya. Setiap resource diidentifikasi oleh URIs (Universal Resource Identifiers) atau global ID. Resource tersebut direpresentasikan dalam bentuk format teks, JSON atau XML. Pada umumnya formatnya menggunakan JSON dan XML.
Metode HTTP umum dalam arsitektur REST
- GET, menyediakan hanya akses baca pada resource
- PUT, digunakan untuk menciptakan resource baru
- DELETE, digunakan untuk menghapus resource
- POST, digunakan untuk memperbarui resource yang ada atau membuat resource baru
- OPTIONS, digunakan untuk mendapatkan operasi yang disupport pada resource
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.
Respon Kode
Secara umum ada 5 tipe respon kode yang dihasilkan dari permintaan REST:
- 1XX: Informational
- 2XX: Success
200: OK. Permintaan sukses dijalankan. - 3XX: Redirection
301: Move permanently. - 4XX: Client Error
400: Bad request.
401: Unauthorized.
403: Forbidden.
404: Not found. - 5XX: Server Error
500: Internal server error.
503: Service unavailable.
504: Gateway timeout.
Client
Mengakses REST API dapat menggunakan browser, tetapi ada aplikasi yang lain yang berguna untuk menguji dan membangun sumber daya sistem. Berikut beberapa aplikasi client yang dapat Anda coba:
- CURL: curl.haxx.se
- HTTPIE: httpie.org
- POSTMAN: getpostman.com
- PAW: paw.cloud
Referensi
- REST (REPRESENTATIONAL STATE TRANSFER), https://ekajogja.com/arsip/definisi/rest-representational-state-transfer/
- FOUNDATIONS OF RESTful Architecture, https://dzone.com/storage/assets/9815686-dzone-refcard129-restfularchitecture.pdf
- Mengenal RESTful Web Services, https://www.codepolitan.com/mengenal-restful-web-services