Pada materi kali ini, kita akan melanjutkan seri dari Tutorial Laravel 11. Di sini, kita akan masuk ke pembahasan mengenai API. Apa itu API? apa itu REST API? dan Apa itu RESTful API?
Kita semua mungkin sudah familiar dengan istilah API (Application Programming Interface). Secara umum, API memiliki makna yang sangat luas. Namun, di sini kita akan menganalogikan API sebagai sebuah jembatan. Jadi API adalah jembatan untuk menghubungkan aplikasi supaya bisa saling berkomunikasi.
Sebelum membahas API lebih lanjut mari kita perhatikan gambar berikut :
Namun, bagaimana jika kita memiliki aplikasi sendiri dan ingin mengambil data produk dari tokopedia? Apakah kita akan melakukan koneksi ke database tokopedia?
Tentu saja kita tidak bisa melakukan koneksi langsung ke database tokopedia, tokopedia tidak mungkin memberikan akses database secara langsung meskipun hak aksesnya sudah dibatasi.
Nah untuk mengatasi hal ini, tokopedia akan membuat sebuah API (Jembatan) supaya kita bisa mengambil data produk dari database mereka. Sehingga gambarnya akan menjadi seperti berikut :
Pertama, aplikasi kita akan mengirimkan request ke server Tokopedia melalui API. Server Tokopedia kemudian akan mengambil data produk dari database dan mengembalikan response ke aplikasi kita.
Biasanya, API memerlukan autentikasi dalam bentuk token untuk menjaga keamanan. Selain itu, API juga mengembalikan kode status yang menunjukkan apakah permintaan berhasil diproses atau terjadi kesalahan.Beberapa Kode Status API Yang Sering Digunakan :
-
200 OK (Permintaan Berhasil Diproses)
Kode ini menunjukkan bahwa permintaan berhasil diproses.
Contoh : Ketika membuat permintaan ke API Tokopedia, jika data tersedia dan berhasil diambil, respons yang dikirim akan menyertakan kode 200 OK. -
400 Bad Request (Permintaan Tidak Valid)
Kode ini muncul ketika format permintaan tidak sesuai dengan aturan yang diminta oleh server.
Contoh : Terjadi jika data yang dikirimkan ke API salah format atau tidak lengkap. -
401 Unauthorized (Gagal Autentikasi atau Token Tidak Valid)
Kode ini digunakan ketika autentikasi gagal, misalnya karena token API sudah kadaluarsa atau tidak disertakan.
Contoh : Lupa menyertakan token API saat membuat permintaan. -
403 Forbidden (Akses Ditolak)
Kode ini muncul jika pengguna mencoba mengakses resource yang tidak diizinkan.
Contoh : Mengakses data yang tidak memiliki izin meskipun sudah terautentikasi. -
404 Not Found (Resource Tidak Ditemukan)
Kode ini menunjukkan bahwa URL atau resource yang diminta tidak tersedia.
Contoh : Mengakses endpoint API yang salah atau sudah dihapus. -
500 Internal Server Error (Kesalahan Internal Server)
Kode ini menandakan adanya kesalahan di server, biasanya karena bug dalam kode.
Contoh : Terjadi ketika server mengalami error yang tidak terduga. -
503 Service Unavailable (Layanan Tidak Tersedia)
Kode ini digunakan saat server sedang tidak dapat menangani permintaan, biasanya karena ada pemeliharaan.
Contoh : API sedang dalam perbaikan atau pemeliharaan.
Apa Itu REST?
- GET : Digunakan untuk mengambil data
- POST : Digunakan untuk membuat data
- PUT : Digunakan untuk memperbarui data
- DELETE : Digunakan untuk menghapus data
- SOAP (Simple Object Access Protocol)
SOAP adalah protocol yang dirancang untuk komunikasi formal, karena implementasinya yang komplek SOAP biasanya digunakan dalam aplikasi enterprise yang membutuhkan tingkat keamanan yang sangat tinggi. - GraphQL
GraphQL sebuah query languange yang dikembangkan oleh Facebook, arsitektur ini memberikan fleksibilitas penuh pada client dalam melakukan request data. Dengan GraphQL kita sebagai client dapat menentukan struktur data yang akan dikembalikan, sehingga akan mengembalikan response yang lebih efisien. - gRPC (Google Remote Procedure Call)
Framework open-source dari google yang digunakan untuk komunikasi antara layanan dengan menggunakan format protocol buffers (Protobuf). - OData (Open Data Protocol)
Sebuah protokol yang dikembangkan oleh microsoft, OData memiliki kemudahan dalam melakukan query kompleks. Namun, OData sendiri lebih rumit dalam implementasi dibandingkan dengan REST. Sehingga menjadikan OData kurang populer dibandingkan dengan REST dan GraphQL. - JSON-RPC dan XML-RPC
Berikut gambaran endpoint yang mengikuti arsitektur REST :
Mungkin itu saja yang bisa kita pelajari dari pertemuan kali ini. Semoga materi yang disampaikan dapat membantu teman-teman dalam memahami API, REST API, dan RESTful API. Jika teman-teman memiliki pertanyaan atau ingin berbagi pengalaman, silakan ketikkan pada kolom komentar di bawah.
Sedikit Tentang Saya :
Sebagai seorang programmer profesional dengan pengalaman sekitar 4 tahun di bidang IT, saya siap membantu Anda dengan berbagai kebutuhan konsultasi.
Jangan ragu untuk menghubungi saya melalui WhatsApp.
Sampai jumpa di tutorial berikutnya!
Kontak Saya :
Email : ronisurya.115@gmail.com
WhatsApp : 081222821596
Website : Roni Surya
Materi Selanjutnya : Integrasi Laravel dan PostgreSQL dalam Docker