Arsitektur Gateway API

Gateway API adalah sistem pengelolaan API yang menyediakan pengelolaan, pemantauan, dan autentikasi untuk API Anda. Komponen yang membentuk API Gateway meliputi:

  • Gateway API: untuk mengelola semua aspek API yang di-deploy
  • Kontrol Layanan: untuk menerapkan aturan pengelolaan API
  • Pengelolaan Layanan: untuk mengelola konfigurasi API
  • gcloud CLI: untuk men-deploy dan mengelola API
  • Konsol Google Cloud: untuk logging, pemantauan, dan berbagi

Arsitektur

Berikut adalah diagram tingkat tinggi dari komponen utama yang terlibat dalam Gateway API:

Komponen utama API Gateway.

Dalam diagram ini:

  • Penyedia API bertanggung jawab untuk membuat dan men-deploy API di Gateway API. Setiap API didefinisikan oleh file yang ditulis sebagai spesifikasi OpenAPI 2.0.

    Spesifikasi OpenAPI menentukan URL endpoint REST yang dapat dilihat publik untuk API, layanan backend yang diakses oleh API, dan karakteristik API lainnya seperti autentikasi, format data, dan opsi respons.

  • Klien API membuat permintaan REST ke API yang dihosting di Gateway API untuk mengakses layanan backend. Klien API dapat berupa aplikasi apa pun yang mampu melakukan panggilan REST, seperti browser, aplikasi seluler, atau aplikasi web.

    Klien API hanya perlu mengetahui URL API, kata kerja permintaan (seperti GET, PUT, POST, DELETE), semua persyaratan autentikasi, dan format data yang dikirim ke atau diterima dari API.

    Klien API tidak perlu mengetahui apa pun tentang implementasi backend. Bahkan, satu API yang dihosting di Gateway API dapat dikonfigurasi untuk mengakses backend yang berbeda berdasarkan informasi yang diteruskan dalam permintaan.

Komponen Gateway API

Gateway API

Gateway API menyediakan solusi bayar per penggunaan yang terkelola sepenuhnya untuk menghosting API Anda. Gateway API menyediakan akses aman ke layanan backend Anda melalui REST API yang ditetapkan dengan baik dan konsisten di semua layanan Anda, terlepas dari implementasi layanannya.

Gateway API terintegrasi dengan Google Cloud sehingga Anda dapat menggunakan alat pengembangan, pemantauan, logging, dan trace yang sama seperti yang Anda gunakan dengan produk Google Cloud lainnya.

Jika Anda terhubung ke layanan backend yang dihosting di luar Google Cloud, Anda masih dapat memanfaatkan semua layanan Google Cloud, termasuk layanan autentikasi dan otorisasi yang digunakan untuk mengontrol akses ke API Anda.

Service Control API

Service Control API menerapkan aturan pengelolaan API pada runtime, seperti autentikasi, pemantauan, dan logging kunci API. Kontrol Layanan menyediakan metode berikut:

  • Periksa: memverifikasi autentikasi dan kunci API, serta menunjukkan apakah panggilan harus diizinkan
  • Laporan: memberi tahu sistem pencatatan untuk logging dan pemantauan

Service Management API

Anda dapat menggunakan spesifikasi OpenAPI untuk menentukan API. Selanjutnya, Anda menggunakan gcloud CLI untuk mengupload spesifikasi OpenAPI ke Pengelolaan Layanan, yang akan membuat konfigurasi API. Tugas terkait konfigurasi lainnya juga terjadi di sini, seperti membagikan API Anda dengan developer lain, mengaktifkan atau menonaktifkan API di project yang berbeda, dan membuat kunci API.

gcloud CLI

Gcloud CLI menyediakan alat command line gcloud yang dapat Anda gunakan untuk melakukan panggilan ke berbagai layanan Google Cloud. Anda menggunakan Google Cloud CLI untuk mengupload spesifikasi OpenAPI, yang membuat konfigurasi API, lalu men-deploy konfigurasi API ke Gateway API.

Cloud Console

Konsol Google Cloud adalah antarmuka pengguna grafis (GUI) untuk Google Cloud. Gunakan Konsol Google Cloud untuk mengekspos data pemantauan dan logging yang direkam oleh Service Control, mengonfigurasi autentikasi dan otorisasi, serta agar developer dapat membuat kunci API untuk memanggil API.

Menangani permintaan API

Dalam konfigurasi API, ada dua jenis endpoint:

  • Endpoint API: menentukan endpoint yang tersedia secara publik yang digunakan klien untuk memakai API Anda.
  • Endend backend: menentukan endpoint yang digunakan API untuk terhubung ke layanan backend Anda. Setelan keamanan, seperti akses HTTP atau HTTPS, ditentukan oleh implementasi layanan backend.

Permintaan ke endpoint API Anda diteruskan ke endpoint backend, termasuk data apa pun yang diteruskan sebagai bagian dari permintaan. Respons dari layanan backend, termasuk data yang ditampilkan oleh layanan, akan diteruskan kembali ke klien.

Meminta perutean

Saat permintaan diterima:

  1. Gateway API membuat token trace untuk Cloud Trace.

  2. Gateway API mencocokkan jalur permintaan masuk dengan API target. Setelah menemukan rute yang cocok, Gateway API melakukan langkah autentikasi untuk API yang ditentukan.

  3. Jika validasi JWT diperlukan, Gateway API akan memvalidasi autentikasi menggunakan kunci publik yang sesuai untuk penanda tangan, dan memvalidasi kolom audience di JWT. Jika kunci API diperlukan, Gateway API akan memanggil Service Control API untuk memvalidasi kunci.

  4. Service Control mencari kunci untuk memvalidasinya, dan memastikan project yang terkait dengan kunci tersebut telah mengaktifkan API. Jika kunci tidak valid atau project belum mengaktifkan API, panggilan akan ditolak dan dicatat melalui Service Control API.

  5. Jika Service Control berhasil memvalidasi kunci, permintaan beserta semua header asli, serta header validasi JWT, jika sesuai, akan diteruskan ke backend.

  6. Saat respons diterima dari backend, Gateway API menampilkan respons ke pemanggil dan mengirimkan informasi pengaturan waktu akhir ke Trace. Titik panggilan dicatat oleh Service Control API, yang kemudian menulis metrik dan log ke tujuan yang sesuai.

Langkah selanjutnya