Tentang Gateway API

Layanan berbasis web saat ini menyediakan berbagai macam fungsi, mulai dari layanan peta, cuaca, dan gambar, hingga game, lelang, dan banyak jenis layanan lainnya. Penyedia layanan memiliki banyak opsi terkait cara menerapkan, men-deploy, dan mengelola layanan mereka. Misalnya, satu layanan mungkin dikembangkan di Java atau .NET, sementara layanan lain 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 diimplementasikan menggunakan arsitektur yang sama sekali berbeda.

Apa pun implementasinya, semua layanan berbasis web memerlukan cara agar layanan tersedia bagi developer aplikasi. Sering kali layanan ini diekspos sebagai kumpulan endpoint HTTP. Bergantung pada layanannya, 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 terkait cara menerapkan layanan tersebut, seperti Cloud Functions, Cloud Run, dan App Engine standard environment. Dengan fleksibilitas GCP, 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 lainnya yang dapat membuat permintaan layanan.

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

  • Mengautentikasi akses ke layanan
  • Mengamankan data transport antara klien dan layanan
  • Melindungi layanan dari serangan berbahaya
  • Menskalakan layanan seiring meningkatnya atau penurunan penggunaan
  • Menyediakan cara kepada tim operasi backend untuk memantau dan melacak penggunaan layanan
  • Lacak 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 jika diperlukan.

Gateway API

Dengan Gateway API, Anda dapat memberikan akses yang aman ke layanan melalui REST API yang ditetapkan dengan baik dan konsisten di semua layanan Anda, apa pun implementasi layanannya. API yang konsisten:

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

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

Membuat permintaan layanan web melalui API Gateway.

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

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

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

Apa itu API?

API adalah antarmuka yang memudahkan satu aplikasi untuk memakai kemampuan atau data dari aplikasi lain. Dengan menentukan titik entri yang stabil, sederhana, dan didokumentasikan dengan baik, API memungkinkan developer mengakses dan menggunakan kembali logika aplikasi yang dibangun 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 penerbitan buku berdasarkan Nomor Buku Standar Internasional (ISBN).
Kata Kerja HTTP GET Buat permintaan GET ke API.
Parameter kueri isbn Teruskan nomor ISBN buku, artinya 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 didefinisikan dengan baik, termasuk deskripsi format data dan kode respons HTTP, developer aplikasi tidak perlu mengetahui apa pun tentang implementasi dasar dari layanan backend.

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

Menentukan API

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

  • URL, atau titik entri, layanan backend
  • Format data dari setiap data yang diteruskan pada permintaan ke API
  • Format data dari setiap data 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 Gateway API

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

Menggunakan 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 dijalankan, Anda dapat memantau aktivitas API, seperti metrik dan log penggunaan. Saat klien membuat permintaan ke API Anda, Gateway API mencatat informasi tentang permintaan dan respons tersebut. Gateway API 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 API. Untuk mengupdate API yang di-deploy, Anda cukup memperbarui spesifikasi OpenAPI untuk definisi API, lalu mengupload dan men-deploy ulang API tersebut.

Mengontrol akses API

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

Anda juga dapat menggunakan Google Cloud Platform Console untuk membagikan API Anda dengan developer lain sehingga mereka dapat mengaktifkan API Anda dan membuat kunci API untuk memanggilnya.

Selain menentukan mekanisme autentikasi untuk memverifikasi identitas pengguna, API Anda juga perlu memutuskan tindakan yang dapat dilakukan pengguna terautentikasi dengan API Anda. Untuk mengetahui informasi lebih lanjut, lihat panduan GCP Auth.

Langkah selanjutnya