全部产品
Search
文档中心

API Gateway:Ekspor API Berdasarkan OAS

更新时间:Jul 02, 2025

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.

  1. 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.

  2. 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.

  3. 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

  1. Ekspor grup API

    1. Masuk ke Konsol API Gateway.

    2. Di panel navigasi kiri, pilih Manage APIs > API Groups.

    3. Di halaman API Groups, temukan grup API yang ingin diekspor. Klik image lalu pilih Export API Definitions di kolom Actions.

    4. Di kotak dialog Export API Definitions, tentukan parameter Format Data, Tahap, dan Export Extended Definitions. Lalu, klik Konfirmasi.

  2. Ekspor API tertentu

    1. Masuk ke Konsol API Gateway.

    2. Di panel navigasi kiri, pilih Manage APIs > APIs.

    3. Di halaman APIs, pilih API yang ingin diekspor dan pilih Lainnya > Export API Definitions di bawah daftar.

    4. 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

  • true

  • false

x-aliyun-apigateway-api-force-nonce-check

Objek Operasi

Objek Operasi

Menentukan apakah perlindungan anti-replay diaktifkan.

Boolean

  • true

  • false

x-aliyun-apigateway-parameter-handling

Objek Operasi

Objek Operasi

Mode permintaan dalam definisi permintaan.

String

  • MAPPING

  • PASSTHROUGH

  • MAPPING_PASSTHROUGH

x-aliyun-apigateway-auth-type

Objek Operasi

Objek Operasi

Tipe otentikasi keamanan.

String

  • ANONYMOUS

  • APP

x-aliyun-apigateway-app-code-type

Objek Operasi

Objek Operasi

Tipe otentikasi AppCode.

String

  • DEFAULT

  • DISABLE

  • HEADER

  • HEADER_QUERY

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

  • true

  • false

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

  • header

  • query

  • path

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

  1. Jika Anda mengekspor berdasarkan grup, jalur dasar grup akan diekspor.

  2. Anda dapat mengekspor hingga 300 API sekaligus. Jika grup berisi lebih dari 300 API, hanya 300 API pertama yang akan diekspor.

  3. Jika definisi model grup API tidak dapat diurai, definisi model tidak akan diekspor.

  4. Jika Anda mengekspor API tertentu, semua API yang dipilih akan diekspor ke file yang sama.

  5. Jika API memiliki jalur dan metode yang sama, hanya salah satu API yang akan diekspor.

  6. 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.

  7. 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