API Gateway memungkinkan Anda mengekspor API berdasarkan Spesifikasi OpenAPI (OAS) 2.0 atau OAS 3.0, sehingga memudahkan migrasi API antar akun, wilayah, atau platform.
Ikhtisar
Topik ini menjelaskan cara mengekspor API dari API Gateway berdasarkan standar OAS. Berikut adalah beberapa hal yang dapat Anda lakukan dengan fitur ini, termasuk fitur impor API dari API Gateway. Untuk informasi lebih lanjut tentang fitur impor API, lihat Impor API yang sesuai dengan OAS.
Migrasikan API di antara akun, wilayah, atau platform: Anda dapat mengekspor API yang sesuai dengan OAS dari API Gateway atau platform lain, lalu mengimpornya ke akun Alibaba Cloud lain, wilayah lain, atau platform lain.
Publikasikan dan perluas API: Anda dapat mengonversi definisi API yang sesuai dengan OAS menjadi sumber daya API di API Gateway. Ini memungkinkan Anda membuat, mengonfigurasi, serta menyesuaikan atau memperluas fungsi dan perilaku API sesuai kebutuhan. Fleksibilitas API Gateway membantu Anda mengelola izin akses API, membatasi laju lalu lintas, dan meneruskan permintaan secara andal dan aman.
Integrasikan dan kolaborasikan: Anda dapat mengintegrasikan API yang diekspor dengan alat pengembangan atau platform lain berdasarkan standar OAS. Hal ini mempermudah kolaborasi dengan tim atau pengembang lain karena berbagi API mengurangi beban komunikasi dan pengembangan.
Ekspor API yang Sesuai dengan OAS
Anda dapat mengekspor seluruh grup API atau API tertentu.
Prosedur
Ekspor grup API
Masuk ke Konsol API Gateway.
Di panel navigasi kiri, pilih Manage APIs > API Groups.
Di halaman API Groups, temukan grup API yang ingin diekspor. Klik
lalu pilih Export API Definitions di kolom Actions.Di kotak dialog Export API Definitions, tentukan parameter Format Data, Tahap, dan Export Extended Definitions. Lalu, klik Konfirmasi.
Ekspor API tertentu
Masuk ke Konsol API Gateway.
Di panel navigasi kiri, pilih Manage APIs > APIs.
Di halaman APIs, pilih API yang ingin diekspor dan pilih Lainnya > Export API Definitions di bawah daftar.
Di kotak dialog Export API Definitions, tentukan parameter Format Data, Tahap, dan Export Extended Definitions. Lalu, klik Konfirmasi.
Definisi API yang Diperluas
Jika Anda memilih Ya untuk parameter Ekspor Definisi yang Diperluas, bidang tambahan terkait API Gateway akan ditambahkan ke file API yang diekspor. Tabel berikut menggambarkan bidang-bidang tersebut.
Bidang diperluas | Lokasi di OAS 2.0 | Lokasi di OAS 3.0 | Deskripsi | Tipe | Nilai valid |
x-aliyun-apigateway-any-method | Objek Jalur | Objek Jalur | Definisi lengkap metode ANY. | Objek | - |
x-aliyun-apigateway-backend | Objek Operasi | Objek Operasi | Layanan backend. | Objek | - |
x-aliyun-apigateway-api-market-enable | Objek Operasi | Objek Operasi | Menentukan apakah API diizinkan dipublikasikan ke Alibaba Cloud Marketplace. | Boolean |
|
x-aliyun-apigateway-api-force-nonce-check | Objek Operasi | Objek Operasi | Menentukan apakah perlindungan anti-replay diaktifkan. | Boolean |
|
x-aliyun-apigateway-parameter-handling | Objek Operasi | Objek Operasi | Mode permintaan dalam definisi permintaan. | String |
|
x-aliyun-apigateway-auth-type | Objek Operasi | Objek Operasi | Tipe otentikasi keamanan. | String |
|
x-aliyun-apigateway-app-code-type | Objek Operasi | Objek Operasi | Tipe otentikasi AppCode. | String |
|
x-aliyun-apigateway-constant-parameters | Objek Operasi | Objek Operasi | Definisi parameter konstan. | Objek | - |
x-aliyun-apigateway-system-parameters | Objek Operasi | Objek Operasi | Definisi parameter sistem. | Objek | - |
x-aliyun-apigateway-api-enable-internet | Objek Operasi | Objek Operasi | Menentukan apakah akses melalui Internet diizinkan. | Boolean |
|
x-aliyun-apigateway-success-demo | Objek Operasi | Objek Operasi | Contoh respons untuk panggilan sukses. | String | - |
x-aliyun-apigateway-failed-demo | Objek Operasi | Objek Operasi | Contoh respons untuk panggilan gagal. | String | - |
x-aliyun-apigateway-api-name | Objek Operasi | Objek Operasi | Nama API. | String | - |
x-aliyun-apigateway-request-scheme | N/A | Objek Operasi | Protokol yang didukung oleh API, seperti HTTP. | String | - |
x-aliyun-apigateway-backend-location | Objek Parameter | Objek Parameter | Lokasi parameter yang dipetakan di layanan backend. | String |
|
x-aliyun-apigateway-backend-name | Objek Parameter | Objek Parameter | Nama parameter yang dipetakan di layanan backend. | String | - |
x-aliyun-apigateway-parameter-demo | Objek Parameter | Objek Parameter | Contoh nilai parameter. | String | - |
x-aliyun-apigateway-response-messages | Objek Respons | Objek Respons | Pesan kesalahan dalam definisi kesalahan. | String | - |
Deskripsi
Jika Anda mengekspor berdasarkan grup, jalur dasar grup akan diekspor.
Anda dapat mengekspor hingga 300 API sekaligus. Jika grup berisi lebih dari 300 API, hanya 300 API pertama yang akan diekspor.
Jika definisi model grup API tidak dapat diurai, definisi model tidak akan diekspor.
Jika Anda mengekspor API tertentu, semua API yang dipilih akan diekspor ke file yang sama.
Jika API memiliki jalur dan metode yang sama, hanya salah satu API yang akan diekspor.
Jika Anda memilih Tidak untuk parameter Ekspor Definisi yang Diperluas, nilai OperationId dalam file yang diekspor adalah string gabungan dari jalur permintaan dan metode permintaan definisi API, seperti export1ByGET.
Jika Anda memilih Ya untuk parameter Ekspor Definisi yang Diperluas, informasi tambahan tentang API, seperti Plugin yang terikat, aplikasi yang diotorisasi, nama domain yang terikat pada grup API, dan definisi layanan backend di lingkungan yang berbeda, tidak akan diekspor.
Contoh
Dalam kode contoh berikut, grup API dan definisi API yang diperluas diekspor.
swagger: '2.0'
info:
description: Ekspor dari grup api xxx
version: 1.0.0
title: Api Gateway API
basePath: /export
paths:
/export1/{pathParam}:
get:
summary: uji pekerjaan ekspor 1.
operationId: export1pathParamByGET
schemes:
- http
- https
parameters:
- name: pathParam
in: path
description: parameter jalur.
required: true
type: string
maxLength: 10
x-aliyun-apigateway-parameter-demo: pathValue
x-aliyun-apigateway-backend-name: pathParam
x-aliyun-apigateway-backend-location: path
- name: headParam
in: header
description: parameter header.
required: false
type: string
x-aliyun-apigateway-parameter-demo: headerValue
x-aliyun-apigateway-backend-name: headParam
x-aliyun-apigateway-backend-location: query
- name: queryParam
in: query
description: parameter query.
required: false
type: string
x-aliyun-apigateway-parameter-demo: queryValue
x-aliyun-apigateway-backend-name: queryParam
x-aliyun-apigateway-backend-location: header
responses:
'200':
description: berhasil.
x-aliyun-apigateway-response-messages: berhasil
'400':
description: kesalahan klien.
x-aliyun-apigateway-response-messages: kesalahan klien
'500':
description: kesalahan server.
x-aliyun-apigateway-response-messages: kesalahan server
x-aliyun-apigateway-system-parameters:
- backendName: testClientIp
systemName: CaClientIp
location: header
x-aliyun-apigateway-constant-parameters:
- backendName: constantparam
location: header
value: constantValue
descriptoin: parameter konstan.
x-aliyun-apigateway-api-name: export_1
x-aliyun-apigateway-api-market-enable: false
x-aliyun-apigateway-api-force-nonce-check: true
x-aliyun-apigateway-parameter-handling: MAPPING
x-aliyun-apigateway-auth-type: APP
x-aliyun-apigateway-api-enable-internet: true
x-aliyun-apigateway-failed-demo: '{"result":"fail"}'
x-aliyun-apigateway-success-demo: '{"result":"success"}'
x-aliyun-apigateway-app-code-type: DEFAULT
x-aliyun-apigateway-backend:
body: good job
statusCode: 200
header:
- name: test
value: header1
type: MOCK
/export2/*:
x-aliyun-apigateway-any-method:
operationId: export_2
description: uji pekerjaan ekspor 1.
x-aliyun-apigateway-api-market-enable: false
x-aliyun-apigateway-api-force-nonce-check: false
x-aliyun-apigateway-api-enable-internet: true
x-aliyun-apigateway-parameter-handling: PASSTHROUGH
x-aliyun-apigateway-auth-type: ANONYMOUS
x-aliyun-apigateway-success-demo: '{"result":"success"}'
x-aliyun-apigateway-failed-demo: '{"result":"fail"}'
schemes:
- http
- https
x-aliyun-apigateway-backend:
body: good job
statusCode: 200
header:
- name: test
value: header1
type: MOCK
x-aliyun-apigateway-constant-parameters:
- backendName: constantparam
location: header
value: constantValue
descriptoin: parameter konstan.
x-aliyun-apigateway-system-parameters:
- backendName: testClientIp
systemName: CaClientIp
location: header
responses:
'200':
description: berhasil.
briefMessage: berhasil
schema:
$ref: testModel
'400':
description: kesalahan klien.
briefMessage: kesalahan klien
schema:
$ref: testModel
'500':
description: kesalahan server.
briefMessage: kesalahan server
definitions:
testModel:
type: object
required:
- name
properties:
dogProject:
type: object
properties:
name:
type: string
maxLength: 10
id:
type: integer
format: int64
name:
type: string
pattern: ^\d{3}-\d{2}-\d{4}$
id:
type: integer
format: int64
status:
type: string