Halo teman ngide! Kita akan membahas tentang apa itu REST API, metode yang sering digunakan dalam rest api dan juga kelebihan serta kekurangan rest api.
Nah REST ini diperkenalkan oleh Roy Fielding pada tahun 2000. Lalu API itu artinya Application Protocol Interface dimana adalah kumpulan dari subroutine definitions, protocol dan juga tools untuk berkomunikasi data antar aplikasi software.
Daftar Isi
Jadi bisa dibilang, REST itu adalah salah satu dari desain arsitektur di dalam API.
Kemudian banyak juga yang bertanya tentang apakah perbedaan antara apa itu API, REST API, dan RESTful API? Kita akan coba bahas dulu satu-persatu.
Pengertian API
Sebelumnya sudah kita bahas sedikit dengan API adalah singkatan dari Application Programming Interface yang bisa digunakan antar aplikasi untuk saling berkomunikasi satu dengan yang lainnya.
Fungsi API adalah untuk bertukar data antar aplikasi tanpa harus terhubung secara langsung.
Pengertian REST API
REST itu kependakan dari REpresentational State Transfer yang merupakan standar arsitektur berbasis web yang menggunakan protokol HTTP untuk berkomunikasi data.
Jadi bisa dikatakan REST ini adalah salah satu desain arsitektur untuk membuat API.
Nah sedangkan RESTful adalah sebuah sistem yang mengimplementasikan REST api didalammnya. Jadi RESTful ini lebih kepada sebuah aplikasi yang mengimplementasikan REST api sehingga bisa dikatakan sebagai sebuah aplikasi yang RESTful.
HTTP Method REST API
Adapun metode HTTP yang secara umum dipakai dalam REST api adalah:
- GET, biasanya digunakan untuk membaca resource dari REST server
- POST, biasanya digunakan untuk membuat resource baru di REST server
- PUT, biasanya digunakan untuk memperbaharui resource di REST server
- DELETE, biasanya digunakan untuk menghapus resource dari REST server
- OPTIONS, digunakan untuk mendapatkan operasi yang disupport pada resource dari REST server
REST adalah salah satu implementasi dari web service sebagai sebuah standar yang digunakan untuk pertukaran data antar aplikasi atau sistem.
Biasanya aplikasi atau sistem ini menggunakan bahasa pemrogramman yang berbeda sehingga untuk bisa berkomunikasi satu sama lainnya bisa menggunakan web service ini.
Cara kerja REST API
Dalam RESTful application akan ada 2 sisi yaitu REST Server dan REST Client.
REST server adalah pihak yang menyediakan data sedangkan REST Client adalah pihak yang melakukan request ke REST Server.
Cara kerja REST API adalah REST client akan mengakses data/resource ke REST server dimana masing-masing resource atau data tersebut dibedakan oleh sebuah global ID atau URIs (Universal Resource Identifiers).
Data yang diberikan oleh REST server itu bisa berupa format text, JSON atau XML.
Yang paling populer dipakai saat ini adalah format JSON karena lebih mudah untuk dibaca secara umum.
Flow dari sebuah proses REST contohnya:
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.
Simple kan?
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
Keuntungan REST API
Keuntungan:
- Bisa digunakan oleh banyak bahasa pemroggraman dan banyak platform
- Lebih simple dibandingkan dengan SOAP
- Mudah dipelajari
- ini seperti web, menggunakan protokol HTTP, dan HTTP ada dimana-mana
Kekurangan REST API
- Waktu akses yang biasanya lebih lama dibandingkan dengan native library
- Lebih rentan dengan serangan keamanan karena harus melewati protocol HTTP
Contoh RESTful Web Service
Sebelumnya kita sudah membahas method HTTP dalam sebuah REST API. Contoh RESTful Web Service dalam implementasinya adalah:
No | URL | HTTP Method | Body Request | Result | |||||
1 | /products | GET | None | List of products | |||||
2 | /products | POST | Product JSON | Inserted Product | |||||
3 | /products/1 | GET | NONE | 1 Product with message | |||||
4 | /products/1 | PUT | Product JSON | 1 Updated Product with message | |||||
5 | /products/1 | DELETE | NONE | Deleted message |
Table diatas adalah contoh RESTful Web Service yang bisa digunakan oleh REST Client untuk berkomunikasi dengan REST Server.
Jadi seperti itulah sedikit perkenalan dengan apa itu API, REST API dan juga Aplikasi RESTful .
Untuk teman-teman yang membutuhkan arsitektur API yang bisa diakses oleh banyak bahasa pemrogramman dan banyak platform sekaligus maka membuat sebuah sistem yang RESTful akan menjadi pilihan yang tepat.
Good referensi: