Bagi seorang programmer pasti sudah tidak asing lagi dalam mendengar nama REST API. API (Application Programming Interface) adalah suatu kumpulan subroutine, protokol komunikasi, tools, dan fungsi untuk membuat sebuah perangkat lunak. Mudahnya, API adalah fungsi yang dapat dipanggil atau dijalankan oleh program lain sehingga dapat menghubungkan antara server dengan perangkat yang digunakan oleh user. Jadi, untuk mendapatkan suatu database dari suatu perusahaan diperlukan API untuk mengambil data tersebut hingga sampai kepada user. Lalu, bagaimana dengan REST API? Penerapannya kepada suatu program? Dan bagaimana cara membuat request melalui HTTP Protocol?
Pengenalan dan Penerapan API
Seperti yang sudah disebutkan sebelumnya, bahwa API (Application Programming Interface) merupakan interface yang berisi sekumpulan fungsi yang dapat dijalankan oleh program lain dengan berbagai jenis penerapan. Berikut contoh penerapan API
- Bahasa pemrograman : Penerapannya dalam membuat koneksi ke database MySQL menggunakan dua API yang berbeda di bahasa pemrograman PHP. Selain itu, API juga dapat mengakses elemen pada DOM di bahasa pemograman Javascript.
- Library and framework
- Sistem Operasi : Penerapannya dapat dalam bentuk base service, graphic device interface, dan user interface.
- Web API atau web service : Penerapannya dibuat dalam bentuk REST (Representational State Transfer) dan SOAP (Simple Object Access Protocol). Selain itu, dapat diterapkan dalam sebuah sistem perangkat lunak yang dibuat untuk mendukung interaksi antara dua aplikasi yang berbeda melalui jaringan (umumnya menggunakan jaringan HTTP Protocol). Web service dapat membuat aplikasi yang memiliki perbedaan bahasa, teknologi, dan sistem operasi sehingga web service dapat dijadikan bahan untuk membuat REST API.
Pembahasan REST API
- Gaya perancangan
- Stateless
- Dibuat oleh Roy Fielding
- Protokolnya selalu menggunakan HTTP
- Memungkinkan interaksi antar mesin (mesin-mesin) dengan perilaku yang berbeda
- User mengirimkan request dengan data yang diinginkan
- User mengirimkan request dan mengubah data menjadi JSON ke REST Server
- REST Server menerima response berupa JSON beserta kode status dan mengirimkannya ke server (kode status : 200 success, 404 not found, 500 server eror, dan masih banyak lagi. Kode status digunakan untuk mengetahui apakah request yang dikirimkan oleh user sudah benar atau belum)
- Server menerima dari REST Server dan mengubah respon menjadi HTML
Perbedaan dengan RESTful API
- GET : Metode ini digunakan untuk mengambil data. Contoh : GET localhost/co-app/pengajar/ atau GET localhost/co-app/pengajar/12
- POST : Metode ini digunakan untuk mengambil data. Contoh : POST localhost/ci-app/pengajar
- PUT : Metode ini digunakan untuk mengubah data tetapi metode ini tidak dapat digunakan di browser. Contoh : PUT localhost/ci-app/pengajar/33
- DELETE : Metode ini digunakan untuk menghapus data tetapi metode ini tidak dapat digunakan di browser. Contoh : DELETE localhost/ci-app/pengajar/44
- Menggunakan HTTP method yang benar (GET, PUT, POST, DELETE)
- ENDPOINTS yang digunakan berupa kata benda
- Bersifat stateless
- Menggunakan REST secara benar