Ekstensi OpenAPI 3.x

Endpoints menerima serangkaian ekstensi khusus Google ke spesifikasi OpenAPI yang mengonfigurasi perilaku gateway. Dengan ekstensi ini, Anda dapat menentukan setelan pengelolaan API, metode autentikasi, batas kuota, dan integrasi backend langsung dalam dokumen OpenAPI. Memahami ekstensi ini akan membantu Anda menyesuaikan perilaku layanan dan berintegrasi dengan fitur Endpoints.

Halaman ini menjelaskan ekstensi khusus Google untuk spesifikasi OpenAPI 3.x.

Meskipun contoh yang diberikan dalam format YAML, JSON juga didukung.

x-google-api-management

Wajib.

Ekstensi x-google-api-management menentukan setelan pengelolaan API tingkat teratas untuk layanan Anda. Tempatkan ekstensi ini di root dokumen OpenAPI Anda.

Tabel berikut menjelaskan kolom untuk x-google-api-management:

Kolom Jenis Wajib Default Deskripsi
metrics map[string]Metric Tidak Kosong Tentukan metrik untuk menerapkan batas kuota.
quota map[string]Quota Tidak Kosong Tentukan batas kuota untuk layanan Anda.
backends map[string]Backend Tidak Kosong Konfigurasi layanan backend.
apiName string Tidak Kosong Mengaitkan nama dengan operasi yang ditentukan dalam dokumen OpenAPI.
allowCors bool Tidak False Teruskan semua permintaan CORS (OPTIONS) ke backend.

Objek Metric

Objek Metric menentukan metrik yang digunakan untuk penerapan kuota.

Tabel berikut menjelaskan kolom untuk Metric:

Kolom Jenis Wajib Default Deskripsi
displayName string Tidak Kosong Nama tampilan metrik.

Objek Quota

Objek Quota menentukan batas kuota.

Tabel berikut menjelaskan kolom untuk Quota:

Kolom Jenis Wajib Default Deskripsi
limits map[string]QuotaLimit Tidak Kosong Tentukan batas kuota.

Objek Quota Limit

Objek QuotaLimit menentukan batas kuota tertentu.

Tabel berikut menjelaskan kolom untuk QuotaLimit:

Kolom Jenis Wajib Deskripsi
metric string Ya Merujuk metrik yang dideklarasikan dalam dokumen OpenAPI ini.
values int64 Ya Tetapkan nilai maksimum yang dapat dicapai metrik sebelum permintaan klien ditolak.

Objek Backend

Objek Backend mengonfigurasi layanan backend. Anda harus menetapkan jwtAudience atau disableAuth.

Tabel berikut menjelaskan kolom untuk Backend:

Kolom Jenis Wajib Default Deskripsi
address string Tidak Kosong Tentukan URL backend.
jwtAudience string Tidak Kosong Secara default, Endpoints akan membuat token ID instance dengan audiens JWT yang cocok dengan kolom alamat. Menentukan jwt_audience secara manual hanya diperlukan jika backend target menggunakan autentikasi berbasis JWT dan audiens yang diharapkan berbeda dengan nilai yang ditentukan di kolom alamat. Untuk backend jarak jauh yang di-deploy di App Engine atau dengan IAP, Anda harus mengganti audiens JWT. App Engine dan IAP menggunakan client ID OAuth-nya sebagai audiens yang diharapkan.
disableAuth bool Tidak False Mencegah proxy bidang data mendapatkan token ID instance dan melampirkannya ke permintaan.
pathTranslation string Tidak APPEND_PATH_TO_ADDRESS atau CONSTANT_ADDRESS Tetapkan strategi terjemahan jalur saat melakukan proxy permintaan ke backend target. Jika x-google-backend ditetapkan di level teratas, pathTranslation default adalah APPEND_PATH_TO_ADDRESS. Jika x-google-backend ditetapkan pada operasi, nilai defaultnya adalah CONSTANT_ADDRESS.
deadline double Tidak 15.0 Tentukan jumlah detik untuk menunggu respons penuh dari permintaan. Respons yang melebihi batas waktu ini akan habis.
protocol string Tidak http/1.1 Tetapkan protokol untuk mengirim permintaan ke backend. Nilai yang didukung mencakup http/1.1 dan h2.

x-google-auth

Opsional.

Ekstensi x-google-auth menentukan setelan autentikasi dalam Objek Skema Keamanan.

Tabel berikut menjelaskan kolom untuk x-google-auth:

Kolom Jenis Wajib Default Deskripsi
issuer string Tidak Kosong Tentukan penerbit kredensial. Nilai dapat berupa nama host atau alamat email.
jwksUri string Tidak Kosong Berikan URI set kunci publik penyedia untuk memvalidasi tanda tangan Token Web JSON.
audiences [string] Tidak Kosong Mencantumkan audiens yang harus cocok dengan kolom aud JWT selama autentikasi JWT.
jwtLocations [JwtLocations] Tidak Kosong Sesuaikan lokasi untuk token JWT. Secara default, JWT diteruskan di header Authorization (dengan awalan "Bearer "), header X-Goog-Iap-Jwt-Assertion, atau parameter kueri access_token.

Objek JwtLocations

Objek JwtLocations menyediakan lokasi yang disesuaikan untuk token JWT.

Tabel berikut menjelaskan kolom untuk JwtLocations:

Kolom Jenis Wajib Default Deskripsi
header | query string Ya T/A Tentukan nama untuk header yang berisi JWT, atau nama untuk parameter kueri yang berisi JWT.
valuePrefix string Tidak Kosong Hanya untuk header. Jika disetel, nilainya harus cocok dengan awalan nilai header yang berisi JWT.

x-google-quota

Opsional.

Ekstensi x-google-quota menentukan batas kuota. Anda dapat menentukan ekstensi ini di tingkat teratas dokumen OpenAPI atau untuk setiap operasi.

Tabel berikut menjelaskan kolom untuk x-google-quota:

Kolom Jenis Wajib Deskripsi
self map[string]int64 Ya Objek quota (self) mereferensikan semua metrik yang ditentukan dalam objek. Dalam hal ini, petakan metrik (seperti read-requests) ke jumlah untuk menaikkan metrik. Permintaan ditolak jika nilai metrik memenuhi batas kuota.

x-google-backend

Wajib.

Ekstensi x-google-backend mereferensikan backend yang ditentukan dalam x-google-api-management. Anda harus menyetel ekstensi ini untuk Endpoints. Anda dapat menentukan ekstensi ini di tingkat teratas dokumen OpenAPI atau untuk operasi individual.

Tabel berikut menjelaskan kolom untuk x-google-backend:

Kolom Jenis Wajib Deskripsi
self string Ya Merujuk ID backend yang ditentukan di x-google-api-management.

x-google-endpoint

Wajib.

Ekstensi x-google-endpoint digunakan untuk mengonfigurasi properti server yang ditentukan dalam array servers dari dokumen OpenAPI 3.x. Hanya satu entri server dalam dokumen OpenAPI yang dapat menggunakan ekstensi x-google-endpoint.

Ekstensi ini juga menentukan fitur backend lainnya, termasuk:

  • CORS: Anda dapat mengaktifkan Cross-Origin Resource Sharing (CORS) dengan menyetel properti allowCors ke true.
  • Jalur dasar: Jalur dasar yang ditetapkan di server dengan x-google-endpoint digunakan untuk API Anda. Misalnya, konfigurasi berikut menetapkan v1 sebagai jalur dasar:
servers:
  - url: https://API_NAME.apigateway.PROJECT_ID.cloud.goog/v1
    x-google-endpoint: {}

Tabel berikut menjelaskan kolom untuk x-google-endpoint:

Kolom Jenis Wajib Default Deskripsi
target string Tidak Tentukan alamat IP yang di-resolve host.
allowCors bool Tidak false Izinkan permintaan CORS.

Memahami Batasan Ekstensi OpenAPI

Ekstensi OpenAPI ini memiliki batasan tertentu. Untuk mempelajari lebih lanjut, lihat Batasan fitur OpenAPI 3.x.

Langkah berikutnya

  • Jelajahi Spesifikasi OpenAPI.
  • Tinjau dokumentasi Endpoints untuk konfigurasi Endpoints atau ESPv2 tertentu.