Tentang API Gateway

Layanan berbasis web saat ini menyediakan berbagai fungsi, mulai dari layanan peta, cuaca, dan gambar, hingga game, lelang, dan banyak jenis layanan lainnya. Penyedia layanan memiliki banyak opsi untuk menerapkan, men-deploy, dan mengelola layanan mereka. Misalnya, satu layanan mungkin dikembangkan di Java atau .NET, sementara layanan lainnya menggunakan Node.js.

Implementasi backend juga dapat bervariasi untuk satu penyedia layanan. Penyedia layanan mungkin memiliki layanan lama yang diimplementasikan menggunakan satu arsitektur, dan layanan baru yang diimplementasikan menggunakan arsitektur yang sama sekali berbeda.

Terlepas dari penerapannya, semua layanan berbasis web memerlukan cara untuk menyediakan layanan kepada developer aplikasi. Sering kali layanan ini diekspos sebagai sekumpulan endpoint HTTP. Bergantung pada layanan, endpoint mungkin juga menampilkan data, yang diformat sebagai XML atau JSON, ke aplikasi klien.

Tentang layanan Google Cloud Platform

Saat mengembangkan layanan di Google Cloud Platform (GCP), Anda memiliki banyak opsi untuk cara menerapkan layanan, seperti fungsi Cloud Run, Cloud Run, dan lingkungan standar App Engine. Fleksibilitas GCP berarti Anda dapat memilih arsitektur backend yang tepat untuk persyaratan layanan Anda.

Developer aplikasi adalah pelanggan layanan backend. Developer aplikasi menggunakan layanan Anda untuk menerapkan aplikasi untuk perangkat seluler atau tablet, melalui aplikasi yang berjalan di browser, atau melalui jenis aplikasi lain yang dapat membuat permintaan layanan.

Mengekspos layanan secara publik melalui web dapat menjadi tantangan. Agar berhasil, penyedia layanan harus:

  • Mengautentikasi akses ke layanan
  • Transpor data yang aman antara klien dan layanan
  • Melindungi layanan dari serangan berbahaya
  • Menskalakan layanan saat penggunaan meningkat atau menurun
  • Memberikan cara kepada tim operasi backend untuk memantau dan melacak penggunaan layanan
  • Melacak penggunaan untuk memberikan informasi penagihan yang akurat

Selain itu, jika layanan Anda menggunakan antarmuka dan protokol yang berbeda, mengakses layanan ini dapat menjadi tantangan bagi developer aplikasi. Developer tidak hanya harus mempelajari dan memahami setiap antarmuka layanan, tetapi juga harus memantau berbagai layanan untuk mengetahui perubahan, lalu mengupdate dan men-deploy ulang aplikasi sesuai kebutuhan.

Gateway API

Dengan Gateway API, Anda dapat memberikan akses yang aman ke layanan Anda melalui REST API yang ditentukan dengan baik dan konsisten di seluruh layanan Anda, terlepas dari implementasi layanan. API yang konsisten:

  • Memudahkan developer aplikasi menggunakan layanan Anda
  • Memungkinkan Anda mengubah implementasi layanan backend tanpa memengaruhi API publik
  • Memungkinkan Anda memanfaatkan fitur penskalaan, pemantauan, dan keamanan yang terintegrasi di Google Cloud Platform (GCP)

Gambar berikut menunjukkan developer aplikasi yang membuat permintaan ke layanan backend Anda melalui API Gateway:

Membuat permintaan layanan web melalui API Gateway.

Dengan API Gateway, developer aplikasi menggunakan REST API Anda untuk menerapkan aplikasi. Karena semua API dihosting di API Gateway, developer aplikasi akan melihat antarmuka yang konsisten di semua layanan backend.

Dengan men-deploy API di API Gateway, Anda dapat mengupdate layanan backend, atau bahkan memindahkan layanan dari satu arsitektur ke arsitektur lainnya, tanpa harus mengubah API. Selama API ke layanan Anda tetap konsisten, developer aplikasi tidak perlu mengubah aplikasi yang di-deploy karena perubahan yang mendasarinya di backend Anda.

API Gateway adalah sistem pengelolaan API terdistribusi yang juga menyediakan hosting, logging, pemantauan, dan fitur lainnya untuk membantu Anda membuat, membagikan, memelihara, dan mengamankan API. API Gateway terintegrasi secara native dengan GCP dan menangani semua tugas yang terlibat dalam pemrosesan panggilan API serentak, termasuk pengelolaan traffic, otorisasi, dan pemantauan.

Apa yang dimaksud dengan API?

API adalah antarmuka yang memudahkan satu aplikasi menggunakan kemampuan atau data dari aplikasi lain. Dengan menentukan titik entri yang stabil, sederhana, dan terdokumentasi dengan baik, API memungkinkan developer mengakses dan menggunakan kembali logika aplikasi yang dibuat oleh developer lain dengan mudah.

Misalnya, tabel berikut menjelaskan contoh REST API yang dapat menampilkan informasi tentang buku:

Properti Nilai Deskripsi
URL https://www.mybooksapi.com/books/info Menampilkan judul, penulis, dan tanggal terbit buku berdasarkan Nomor Buku Standar Internasional (ISBN).
Verb HTTP DAPATKAN Buat permintaan GET ke API.
Param kueri isbn Teruskan nomor ISBN buku, yang berarti ID buku.
Data respons
{
  "title" : "book_title",
  "author" : "author_name",
  "published" : "publish_date"
}
Objek JSON yang berisi detail buku.
Kode respons 200 Permintaan berhasil.

Dengan menggunakan informasi ini, Anda dapat membuat permintaan cURL berikut ke API ini untuk mendapatkan informasi tentang buku:

curl -X GET https://www.mybooksapi.com/books/info?isbn=0385504217

Karena layanan ini memiliki API yang ditentukan dengan baik, termasuk deskripsi format data dan kode respons HTTP, developer aplikasi tidak perlu mengetahui apa pun tentang implementasi layanan backend yang mendasarinya.

Karena aplikasi yang menggunakan API sensitif terhadap perubahan, API juga menyiratkan kontrak antara penyedia API dan konsumen API. Kontrak ini memastikan bahwa seiring waktu, API akan berubah dengan cara yang dapat diprediksi. Misalnya, API buku mungkin diperbarui untuk menambahkan parameter kueri tambahan, seperti title atau author, atau mengubah JSON respons untuk menambahkan informasi tambahan tentang buku.

Menentukan API

Anda menentukan API yang di-deploy di API Gateway sebagai spesifikasi OpenAPI 2.0. Komponen utama definisi API mencakup:

  • URL, atau titik entri, layanan backend
  • Format data dari data apa pun yang diteruskan melalui permintaan ke API
  • Format data dari data apa pun yang ditampilkan oleh layanan dalam respons dari API
  • Mekanisme autentikasi yang digunakan untuk mengontrol akses ke layanan

Setelah menentukan API, gunakan antarmuka command line gcloud untuk menguploadnya ke konfigurasi API di GCP:

Gunakan gcloud untuk mengupload Spesifikasi API ke GCP.

Men-deploy konfigurasi API di API Gateway

Untuk membuat API, Anda men-deploy konfigurasi API di API Gateway. Gunakan perintah gcloud untuk men-deploy konfigurasi API:

Gunakan gcloud untuk men-deploy spesifikasi OpenAPI.

Setelah konfigurasi API di-deploy, klien Anda dapat melakukan panggilan REST ke API.

Mengelola API

Setelah di-deploy dan berjalan, Anda dapat memantau aktivitas API, seperti metrik dan log penggunaan. Saat klien membuat permintaan ke API Anda, API Gateway akan mencatat informasi tentang permintaan dan respons ke dalam log. API Gateway juga melacak latensi, traffic, dan error.

Seiring waktu, Anda mungkin ingin mengupdate API yang di-deploy untuk menambahkan fungsi baru, meningkatkan performa, atau memperbaiki masalah pada API. Untuk mengupdate API yang di-deploy, Anda cukup mengupdate spesifikasi OpenAPI untuk definisi API, lalu mengupload dan men-deploy ulang API.

Mengontrol akses API

API Gateway memungkinkan Anda mengonfigurasi API untuk mewajibkan autentikasi sebelum klien dapat mengakses API. Saat ini, API Gateway mendukung mekanisme dan sintaksis autentikasi yang sama seperti yang digunakan oleh Cloud Endpoints, termasuk menggunakan:

Anda juga dapat menggunakan Konsol Google Cloud Platform untuk membagikan API Anda kepada developer lain agar mereka dapat mengaktifkan API Anda dan membuat kunci API untuk memanggilnya.

Selain menentukan mekanisme autentikasi untuk memverifikasi identitas pengguna, API Anda juga perlu menentukan tindakan yang dapat dilakukan pengguna terautentikasi dengan API Anda. Untuk informasi selengkapnya, lihat panduan Autentikasi GCP.

Langkah selanjutnya