全部产品
Search
文档中心

API Gateway:API gateway pada beberapa tingkat

更新时间:Jun 28, 2025

API yang dibuat di API Gateway dapat dipanggil oleh klien atau oleh API Gateway itu sendiri. API Gateway dapat memanggil API dalam wilayah yang sama melalui jaringan internal atau lintas wilayah melalui Internet. API Gateway juga mendukung pemanggilan API lintas akun dengan menggunakan pasangan AccessKey dari aplikasi berwenang, serta mengikat plug-in tanda tangan backend jenis APIGW_FRONTEND. Sebelum melakukan pemanggilan API, API Gateway menghasilkan tanda tangan menggunakan pasangan AccessKey dan mengirimkannya ke API untuk otentikasi. Fitur Call by API Gateway dapat digunakan dalam skenario seperti pembuatan API untuk merutekan permintaan. Plug-in rute backend dan plug-in tanda tangan backend diikat ke API, di mana plug-in rute backend merutekan permintaan ke API lain berdasarkan parameter permintaan.

Contoh konfigurasi

1. Konfigurasikan API bisnis

Jika Anda ingin API Gateway memanggil API Anda melalui virtual private cloud (VPC), lakukan langkah-langkah berikut di konsol API Gateway: beli instance dedicated, pindahkan grup API tempat API berada ke instance dedicated, dan hasilkan nama domain internal secara manual untuk pemanggilan API berbasis VPC.

  1. Aktifkan Fitur Call by API Gateway

    a. Masuk ke konsol API Gateway.

    b. Di panel navigasi sebelah kiri, pilih Instances and Clusters > Dedicated Instances. Temukan instance dedicated yang diinginkan pada tab Instances dan klik Enable di samping Calls from API Gateway.

  2. Hasilkan Nama Domain Internal untuk Pemanggilan API

    Buat dua grup API pada instance tersebut. Kemudian, klik masing-masing grup dan hasilkan nama domain internal.

    Sebagai contoh, dua nama domain internal berikut dihasilkan:

17ff4c9189004a1d87b557606b767334-cn-huhehaote-intranet.alicloudapi.com
c6e984b2dd784c0fb843f7c2a8878b15-cn-huhehaote-intranet.alicloudapi.com
  1. Buat API di Setiap Grup

    Buat API di setiap grup API. Atur parameter Security Authentication ke Alibaba Cloud App untuk kedua API. Contoh berikut menunjukkan atribut asumsi dari dua API:

    • API1: Method: GET Path: /business1 URL layanan backend:

      http://backend1.alicloudapi.com:8080/business1
    • API2 Method: GET Path: /business2 URL layanan backend:

      http://backend2.alicloudapi.com:8080/business2
  1. Otorisasi Aplikasi untuk Memanggil API

    Otorisasi aplikasi yang sama untuk memanggil kedua API. Dalam contoh ini, aplikasi memiliki pasangan AccessKey berikut: KEY:TESTKEY SECRET:TESTSECRET

2. Konfigurasikan API distribusi

  1. Buat API Distribusi

    Buat API distribusi yang dapat diakses secara anonim. Konfigurasikan GET sebagai metode HTTP-nya, /distributeAPI sebagai jalurnya, dan 17ff4c9189004a1d87b557606b767334-cn-huhehaote.alicloudapi.com sebagai nama domain grup API tempat ia berada.

  1. Buat dan Ikat Plug-in Rute Backend

    Buat plug-in rute backend dan ikat plug-in tersebut ke API.

---
parameters:
  target: "Query:target"
routes:
- name: backend1
  condition: "$target = 'resource1'"
  backend:
    type: "HTTP"
    address: "17ff4c9189004a1d87b557606b767334-cn-huhehaote-intranet.alicloudapi.com"
    path: "/business1"
- name: backend2
  condition: "$target = 'resource2'"
  backend:
    type: "HTTP"
    address: "c6e984b2dd784c0fb843f7c2a8878b15-cn-huhehaote-intranet.alicloudapi.com"
    path: "/business2"

Kode plug-in di atas menentukan bahwa plug-in merutekan permintaan yang diterima berdasarkan nilai parameter target di bagian query permintaan. Jika nilainya adalah resource1, plug-in meneruskan permintaan ke 17ff4c9189004a1d87b557606b767334-cn-huhehaote-intranet.alicloudapi.com, dan jalur permintaan diubah menjadi /business1. Jika nilainya adalah resource2, plug-in meneruskan permintaan dengan cara yang sama.

  1. Buat dan Ikat Plug-in Tanda Tangan Backend

    Buat plug-in tanda tangan backend dan ikat plug-in tersebut ke API.

---
type: APIGW_FRONTEND
key: TESTKEY
secret: TESTSECRET 
signatureMethod: HmacSHA256

Kode plug-in di atas menentukan bahwa plug-in menghitung tanda tangan berdasarkan konten permintaan yang diterima dan algoritma tanda tangan yang digunakan oleh frontend. Lalu, plug-in menambahkan tanda tangan yang dihitung ke permintaan dan mengirimkan permintaan ke layanan backend.

3. Panggil API distribusi

Sebelum memanggil API, pastikan semua API yang terlibat telah diterbitkan dan diuji dengan benar.

curl 'http://17ff4c9189004a1d87b557606b767334-cn-huhehaote.alicloudapi.com/distributeAPI?target=resource1' -i

Potongan kode berikut menunjukkan contoh permintaan yang dikirim ke layanan backend:

GET /business1 HTTP/1.1
User-Agent: curl/7.64.1
Via: 0045e52ee3a8400b8501b4c449b28779
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Forwarded-Proto: http
X-Forwarded-For: 192.168.XX.XX, 127.0.0.1
Host: backend1.alicloudapi.com:8080
X-Ca-Request-Id: 23853B41-C54D-45E9-8C43-EE4C1E8A7889
Via: bc48a42a3d17408b991b0bb4d18c23c0
curl 'http://17ff4c9189004a1d87b557606b767334-cn-huhehaote.alicloudapi.com/distributeAPI?target=resource2' -i

Potongan kode berikut menunjukkan contoh permintaan lain yang dikirim ke layanan backend:

GET /business2 HTTP/1.1
User-Agent: curl/7.64.1
Via: 0045e52ee3a8400b8501b4c449b28779
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Forwarded-Proto: http
X-Forwarded-For: 192.168.XX.XX, 127.0.0.1
Host: backend2.alicloudapi.com:8080
X-Ca-Request-Id: AFD529D2-9B24-437E-8CEC-897E0BCD8B2F
Via: bc48a42a3d17408b991b0bb4d18c23c0