Web APIs
Untuk pengenalan modul ini kita tentunya sudah memahami bagaimana AJAX dapat menampilkan informasi yang dinamis pada aplikasi kita. Tapi kita belum mengetahui dari mana sumber data tersebut berasal? Bagaimana cara untuk mengaksesnya? Guna menjawab itu semua, mari berkenalan dengan Web API.
Web API (Application Programming Interface) adalah interface yang disediakan oleh penyedia data agar data yang miliki dapat dimanfaatkan atau dipergunakan dengan mudah pada banyak aplikasi, baik itu aplikasi web, mobile, desktop ataupun lainnya.
Penyedia data yang telah membangun Web API mempunyai keuntungan karena proses dalam pengembangan aplikasi menjadi lebih efisien. Mengapa begitu? Karena cukup dengan satu Web API, data dapat dikonsumsi pada berbagai macam platform seperti yang sudah disebutkan di atas.

Pada gambaran di atas, Web API bekerja menggunakan salah satu pola standar yakni REST (Representational State Transfer). Pola inilah yang saat ini umum banyak digunakan karena simpel dan mudah dipelajari daripada pola yang lainnya. Jenis data yang received atau dikirimkan pada pola REST dapat berupa format text, JSON atau XML.
Pola REST hampir semuanya menggunakan HTTP dalam transaksi datanya. Sehingga untuk melakukan komunikasi dengan Web API ini, client (aplikasi) harus membuat HTTP request pada endpoint (URL) yang telah ditentukkan. Umumnya penyedia data juga menetapkan HTTP Request Method yang berbeda pada setiap endpointnya.
Terdapat banyak sekali tipe/method dalam melakukan HTTP Request, namun terdapat 4 (empat) method umum dan penting yang biasanya digunakan pada Web API dalam melakukan transaksi data.
- GET : Digunakan guna mengambil informasi dari Web API.
- POST : Digunakan guna menambahkan data.
- PUT : Digunakan guna mengubah data.
- DELETE : Digunakan guna menghapus data.
Setelah client membuat atau create HTTP request pada Web API, maka Web API akan mengembalikan HTTP response dari request yang dibuat tadi. Pada response terdapat status kode yang menampilkan apakah request yang kita lakukan di accept atau berhasil ataupun juga gagal. Berikut ini beberapa status kode yang dapat dihasilkan dari HTTP Response pada Web API beserta artinya.
- 200 (OK) : Berarti Request berhasil dipenuhi oleh server (Web API).
- 400 (Bad Request) : Berarti Server tidak mengerti request yang dikirimkan client.
- 401 (Unauthorized) : Berarti Request membutuhkan authorization.
- 403 (Forbidden) : Berarti Server mengerti request dari client namun menolak untuk memprosesnya karena request tersebut tidak boleh dilakukan.
- 404 (Not Found) : Berarti Resource yang client minta, tidak ditemukan.
- 500 (Server Error) : Berarti Server mengalami kendala untuk memproses request.
Banyak penyedia data yang menyediakan Web API secara gratis cuma-cuma atau dapat dikonsumsi umum. Namun ada juga penyedia data yang membangun Web API yang hanya dipergunakan untuk keperluan internal saja. Umumnya jika kita mengakses Web API yang sifatnya private, kita akan terhalangi oleh CORS (cross-origin resource sharing
CORS
Sebelum kita lanjut untuk mencoba langkah-langkah mengakses Web API, ada kalanya kita harus mengetahui terlebih dahulu perihal keamanan. Dalam transaksi menggunakan Web API menggunakan AJAX kita bisa melihat request yang dibuat dan response yang dihasilkan melalui Network tabs pada DevTools.

Hal tersebut dikarenakan AJAX diproses pada sisi client sehingga pengguna dapat dengan leluasa untuk melihat dan mengontrolnya. Maka dengan alasan masalah keamanan ketika kita melakukan AJAX baik menggunakan dengan XHR atau Fetch, kita hanya diperbolehkan melakukan request dari domain yang sama.
Contohnya ketika kita ingin mengakses API yang bersumber dari google.com/api maka kita sebagai client perlu menjadi google.com. Jika kita berasal dari domain yang berbeda bukan google.com, contohnya bing.com maka kita tidak dapat menggunakan AJAX pada google.com/api. Hal ini umumnya dikenal sebagai same-origin policy.
Tapi jika memang Web API tersebut diperbolehkan untuk dikonsumsi umum bukan internal saja maka berarti penyedia data harus menerapkan teknologi yang dinamakan CORS (Cross-Origin Resource Sharing) pada servernya.
Server yang menyediakan Web API menggunakan CORS dapat dipergunakan secara umum dan mengelakkan kebijakan same-origin guna mengakses informasi yang ada di dalamnya
Test a Web API using Postman
Lalu apa yang perlu Anda lakukan sebelum mencoba Web API menggunakan AJAX? Guna mempelajari atau menguji sebuah Web API, developer menggunakan tools atau software yang bernama Postman. Postman merupakan GUI API Caller yang dapat membuat HTTP Request dengan method yang lengkap seperti GET, POST, PUT, DELETE dan lainnya.
Postman adalah tools yang sangat cocok untuk menguji sebuah Web API karena terdapat fungsi yang relatif lengkap sebagai API caller dalam melakukan atau melaksanakan HTTP Request. Pada Postman kita bisa menetapkan parameter dan mengirimkan data pada body atau header request dengan mudah, tanpa memerlukan kode.
Postman dapat diakses secara gratis dan dapat berjalan pada sistem operasi Windows, Linux maupun MacOS. Untuk mendapatkan aplikasi Postman, kita bisa mengunduhnya melalui link berikut : https://www.postman.com.

Setelah melakukan pengunduhan, selanjutnya silakan Anda pasang aplikasi postman pada komputer. Saat selesai Anda bisa langsung membukanya dan langsung membuat akun.

Ketika pertama kali membuka aplikasi Postman, kita harus login atau registrasi untuk memiliki akun. Setelah berhasil login atau mendaftar, tampilan pada halaman utamanya seperti ilustrasi dibawah:

Guna melakukan sebuah HTTP Request kita bisa memilih menu “create a request” yang tersedia pada halaman tersebut.

Kemudian untuk mengirimkan request kita perlu tentukan dulu endpoint (request URL) mana yang akan kita tuju pada kolom yang sudah tersedia. Kita akan mencoba melakukan request pada Web API dengan menggunakan endpoint berikut: https://web-server-book-dicoding.appspot.com/list

Setelah mengisikan request URL-nya kita coba tekan tombol “Send”. Maka respon yang akan kita dapatkan adalah daftar buku dalam bentuk JSON.

Jika penyedia data menyediakan Web API secara terbuka atau dapat diakses umum, umumnya si penyedia data akan membuat sebuah dokumentasi cara penggunaan API. Di sana kita dapat menemukan informasi endpoint mana saja yang bisa kita akses, method apa saja yang diperlukan, ataupun format atau struktur seperti apa yang perlu diterapkan untuk mengirim data. Dokumentasi tersebut sangat teramat penting karena melalui itulah seorang developer tahu bagaimana ia bisa memanfaatkan Web API tersebut.
Dokumentasi dari Web API yang kita gunakan pada contoh di atas dapat andalihat pada tautan atau link berikut ini : https://web-server-book-dicoding.appspot.com/.

Dari dokumentasi yang tertera kita menjadi tahu ternyata kita dapat menambahkan data buku baru dengan mengakses endpoint /addnya. Dari sana juga kita bisa melihat method, headers, serta body apa yang sekiranya perlu kita terapkan dalam melakukan request tersebut. Sehingga kita dapat menjajal atau mencobanya pada Postman.

Anda juga bisa mengakses atau mencoba fungsi lain seperti menghapus atau mengubah data buku melalui Web API tersebut. Jika Anda masih belum terlalu paham dan terbiasa dengan Postman, terdapat artikel yang cukup bagus sebagai panduan menggunakan Postman untuk Pemula, anda bisa melihatnya melalui link berikut : https://www.guru99.com/postman-tutorial.html
Terimakasih Semoga bermanfaat !!
Baca Juga : Tips dan Trik untuk Mempercepat Perangkat Anda