Topik ini menjelaskan cara membuat dan mengakses layanan backend HTTP di API Gateway.
Prasyarat
Lingkungan virtual private cloud (VPC) telah dibuat. Untuk informasi selengkapnya, lihat Buat VPC dengan blok CIDR IPv4 dan Buat VPC dengan blok CIDR IPv6.
Instance Elastic Compute Service (ECS) telah dibuat. Untuk informasi selengkapnya, lihat Langkah 1: Buat instance ECS.
Dalam contoh ini, digunakan instance ECS yang dideploy di VPC. Instance ECS berada di wilayah yang sama dengan instance API Gateway. Di instance ECS tersebut, Apache telah dideploy dan menggunakan port default 80. Untuk informasi selengkapnya, lihat Langkah 4: Deploy Apache.
Proses
Topik ini menyediakan panduan langkah demi langkah mulai dari pembuatan layanan backend hingga pembuatan dan asosiasi API dengan aplikasi. Panduan ini juga mencakup cara melakukan debug API secara online menggunakan contoh berbasis SDK dan cURL.
Proses ini terdiri dari enam langkah:
Buat layanan backend: Pada langkah ini, Anda mengonfigurasi layanan backend sebagai resource di wilayah tempat instance API Gateway Anda berada. Layanan backend yang telah dikonfigurasi dapat langsung dipilih saat membuat API.
Buat grup API: Pada langkah ini, Anda membuat grup API. API dikelola dalam grup berdasarkan jenis bisnis dan struktur organisasi.
Buat API: Pada langkah ini, Anda membuat API di Konsol API Gateway.
Buat aplikasi dan otorisasi untuk memanggil API: Pada langkah ini, Anda membuat aplikasi dan memberikan otorisasi agar aplikasi tersebut dapat memanggil API sebagai identitas pemanggil.
Debug API: Pada langkah ini, Anda memverifikasi apakah API berfungsi sesuai harapan dengan menggunakan fitur debugging online yang disediakan oleh Konsol API Gateway.
Panggil API: Pada langkah ini, Anda dapat menggunakan SDK yang disediakan oleh API Gateway atau menjalankan perintah cURL di tool command-line untuk memanggil API.
Langkah 1: Buat layanan backend
API Gateway memungkinkan Anda mengonfigurasi layanan backend sebagai resource suatu wilayah untuk menyederhanakan manajemen. Anda hanya perlu membuat layanan backend di Konsol API Gateway dan mengonfigurasi URL berbeda untuk layanan backend tersebut di lingkungan yang berbeda. Setelah itu, Anda dapat langsung memilih layanan backend yang telah dikonfigurasi saat membuat API.
Masuk ke Konsol API Gateway. Di bilah navigasi atas, pilih wilayah. Di panel navigasi kiri, pilih . Lalu, klik Create Backend Service di pojok kanan atas.
Pada dialog Create Backend Service, atur Name menjadi
httpd-onlinedan Type menjadiHTTP/HTTPS Service, lalu klik Confirm.-
Di halaman Backend Services, klik layanan backend
httpd-online. Di halaman Backend Service Definition, klik tab Production, lalu klik Create di pojok kanan atas. -
Di halaman Basic Information, masukkan
http://192.168.*.***:80di kotak Backend Service URL, lalu klik Publish.Catatanhttp://192.168.*.***:80adalah Alamat IP pribadi dari instance ECS yang telah dibuat.
Langkah 2: Buat grup API
API dikelola dalam grup API. Anda harus membuat grup API sebelum membuat API.
Di halaman API Groups, lihat grup yang telah dibuat dan klik nama grup tersebut untuk membuka halaman Group Details. Di halaman Group Details, Anda dapat bind a domain name, modify basic information, dan change the instance type untuk grup API tersebut.
API Gateway secara otomatis menetapkan public second-level domain name untuk grup API. Nama domain ini hanya digunakan untuk debugging dan memiliki batas 100 panggilan per hari untuk wilayah luar Tiongkok daratan dan 1.000 panggilan per hari untuk wilayah di Tiongkok daratan. Kami menyarankan agar Anda mengikat independent domain name setelah membuat grup API.
Di panel navigasi kiri, pilih . Di halaman API Groups, klik Create Group di pojok kanan atas.
-
Pada dialog Create Group, pilih instance dari daftar drop-down Instances, atur Group Name menjadi
httpd-demo, atur BasePath menjadi/, lalu klik Confirm.
Langkah 3: Buat API
Di panel navigasi kiri, pilih . Di halaman API Groups, temukan grup
httpd-demoyang telah Anda buat dan klik Manage APIs di kolom Actions.Di halaman APIs, klik Create API di pojok kanan atas.
-
Pada langkah Basic Information, konfigurasikan parameter dan klik Next. Tabel berikut menjelaskan parameter tersebut:
Parameter
Contoh
Group
httpd-demo
API Name
httpd-test
Security authentication
Alibaba Cloud App
AppCode Authentication
Enable AppCode Authentication (Header & Query)
Signature Algorithm
HMAC_SHA256
-
Pada langkah Define API Request, konfigurasikan parameter berikut dan klik Next.
CatatanPada langkah ini, Anda menentukan cara client—seperti browser web, aplikasi mobile, atau sistem bisnis—meminta API. Parameter yang perlu dikonfigurasi mencakup Protocol, Request Path, HTTP Method, Request Mode, dan parameter pada bagian Request Parameters. Dalam contoh ini, parameter Request Mode diatur ke Pass-through, yang berarti API Gateway tidak memproses parameter yang dikirim oleh client dan langsung meneruskannya ke backend.
Atur Protocol menjadi HTTP dan HTTPS, Request path menjadi /, HTTP Method menjadi GET, dan Inbound Request Mode menjadi pass-through.
-
Pada langkah Define Backend Service, konfigurasikan parameter berikut dan klik Next.
CatatanTentukan cara API Gateway memetakan dan memproses parameter, serta cara menghubungkan ke alamat backend setelah menerima permintaan dari client. Dalam contoh ini, tipe layanan backend adalah HTTP(S) Service.
Parameter
Contoh
Configuration Mode
Pilih Use Existing Backend Service.
Backend Service Type
Pilih HTTP/HTTPS Service.
Backend Service
httpd-onlineBackend Request Path
/
HTTP Method
GET
Backend Service Timeout Period
10000
Pada langkah Define Response, konfigurasikan parameter sesuai kebutuhan bisnis Anda, lalu klik Create.
-
Pada pesan yang muncul, klik Publish.
-
Pada dialog Publish API, atur Environment menjadi Release, masukkan keterangan di bagian Remarks, lalu klik Publish.
CatatanSetelah mengubah API, Anda harus memublikasikannya ke lingkungan yang sesuai agar perubahan berlaku. API Gateway menyediakan tiga lingkungan bawaan: test, pre-release, dan production.
Langkah 4: Buat aplikasi dan otorisasi untuk memanggil API
Aplikasi adalah identitas yang digunakan untuk memanggil API. Pada langkah Buat API dalam contoh ini, metode autentikasi diatur ke Alibaba Cloud App. Oleh karena itu, setelah API dipublikasikan, Anda harus membuat aplikasi dan memberikan izin kepada aplikasi tersebut untuk memanggil API.
Buat aplikasi
Di panel navigasi kiri, pilih . Di halaman Apps, klik Create App di pojok kanan atas.
-
Masukkan nama aplikasi di bidang App Name dan klik Confirm. Dalam contoh ini, nama aplikasi yang dimasukkan adalah httpd.
-
Di halaman Apps, klik aplikasi
httpdyang telah Anda buat. Di halaman App Details, Anda dapat melihat dua metode autentikasi yang tersedia:AppKeydanAppCode. MetodeAppKeymencakup sepasangAppKeydanAppSecret, yang bekerja mirip seperti pasangan username dan password. Saat memanggil API, Anda harus mengirimkanAppKeysebagai parameter, sedangkanAppSecretdigunakan untuk menghitung signature. API Gateway memverifikasi pasangan AppKey-AppSecret untuk mengotentikasi identitas Anda.
Otorisasi aplikasi untuk memanggil API
Di panel navigasi kiri, pilih . Di halaman APIs, temukan API
http-testdan klik
> Authorize di kolom Actions.-
Di halaman Authorize, atur parameter Stage menjadi Production. Masukkan nama aplikasi yang telah Anda buat di bilah pencarian bagian Choose Apps for Authorization. Di hasil pencarian, pilih aplikasi yang telah dibuat, klik Add di kolom Actions, lalu klik Confirm. Pesan akan muncul untuk memberi tahu bahwa aplikasi telah diotorisasi untuk memanggil API.
Langkah 5: Debug API
API Gateway mendukung debugging online. Kami menyarankan agar Anda menggunakan fitur ini untuk memeriksa apakah API telah dikonfigurasi dengan benar sebelum memanggilnya dari client.
Di panel navigasi kiri, pilih . Di halaman Debug API, pilih API
httpd-test, atur Verification Method menjadi Use AppSecret, lalu klik Send Request.-
Jika pemanggilan berhasil, periksa informasi respons untuk memastikan konfigurasi telah berhasil.
Pemanggilan yang berhasil mengembalikan kode status HTTP 200 OK dan badan respons berisi konten halaman uji default dari layanan Apache backend, seperti "It works!". Hal ini mengonfirmasi bahwa API Gateway berhasil terhubung ke layanan backend.
Langkah 6: Panggil API
Dengan menyelesaikan langkah-langkah sebelumnya, Anda telah membuat dan memublikasikan API, membuat serta memberikan otorisasi kepada aplikasi untuk memanggil API, dan melakukan debug API. Pada langkah ini, Anda dapat menggunakan SDK yang disediakan oleh API Gateway untuk memanggil API yang telah dipublikasikan dari sistem bisnis.
Gunakan SDK
Di panel navigasi kiri, pilih . Di bagian Sample Code for Node.js Signature in Other Languages, pilih bahasa, misalnya Node.js, lalu klik View Sample Code for Node.js.
Jalankan perintah
$ npm install aliyun-api-gateway -Suntuk menggunakan npm menginstal SDK contoh untuk Node.js.Dalam potongan kode berikut, atur
YOUR_APP_KEYdanYOUR_APP_SECRETmenjadi AppKey dan AppSecret dari aplikasi yang dibuat dalam contoh ini.// Impor SDK untuk Node.js yang telah Anda unduh. const Client = require('aliyun-api-gateway').Client; // Buat instans untuk aplikasi yang telah diotorisasi. Tentukan AppKey dan AppSecret dari aplikasi yang diotorisasi. const client = new Client('YOUR_APP_KEY','YOUR_APP_SECRET'); async function get() { // Gunakan nama domain grup API tempat API yang ingin Anda panggil berada. Anda dapat menggunakan public second-level domain name yang disediakan oleh API Gateway untuk menguji pemanggilan API. Namun, jumlah pemanggilan API dibatasi. Kami menyarankan agar Anda mengikat independent domain name ke Grup API tersebut. var url = 'YOUR_GROUP_DOMAIN'; var result = await client.get(url, { // Tentukan header permintaan. Beberapa API dapat mengembalikan format data berdasarkan tipe respons yang ditentukan. Kami menyarankan agar Anda menentukan header permintaan secara manual sesuai kebutuhan bisnis Anda. headers: { accept: 'application/json' }, }); console.log(JSON.stringify(result)); } get().catch((err) => { console.log(err.stack); });
Gunakan cURL
Di panel navigasi kiri, pilih Call APIs > Apps. Di halaman Apps, klik aplikasi yang telah diotorisasi dan dapatkan AppCode-nya di halaman yang muncul. Lalu, gunakan contoh kode berikut untuk memanggil API:
curl -i -X GET "http://3fbf0648d01e4aa5a1d*******-cn-hangzhou.alicloudapi.com" -H "Authorization:APPCODE c404eca23959492b9f0e4d4d15****"
HTTP/1.1 200 OK
Date: Tue, 01 Aug 2023 09:41:07 GMT
Content-Type: text/html
Content-Length: 4897
Server: Apache/2.4.6 (CentOS)
X-Ca-Request-Id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title>Apache HTTP Server Test Page</title>
</head>
<body>
...
<h1>Testing 123..</h1>
<p>This page is used to test the proper operation of the Apache HTTP server...</p>
...
</body>
</html>