Topik ini menyediakan contoh end-to-end penggunaan Cloud-native API Gateway dan DataWorks untuk memublikasikan tabel data MaxCompute sebagai REST API publik.
Tujuan contoh: Buat API untuk tabel
user_infodi MaxCompute. API ini memungkinkan pemanggil mengkueri informasi pengguna dengan memberikanuser_id.Hasil akhir: Anda akan memiliki API yang dapat diakses melalui URL publik, seperti
https://api.example.com/v1/user/info?user_id=10001, serta metode aman dan terotentikasi untuk memanggilnya.
Jika Anda menggunakan legacy API Gateway, lihat Buat API dari sumber data (API Gateway).
Topik ini menggunakan MaxCompute sebagai contoh. Untuk daftar sumber data yang didukung, lihat Konfigurasi sumber data.
Cara kerja
Diagram berikut menggambarkan alur lengkap dari pemanggil API hingga sumber data akhir dan menunjukkan tempat konfigurasi setiap komponen.
Prasyarat
Kategori | Persyaratan | Deskripsi |
Akun dan izin | Akun Alibaba Cloud dan izin | Akun Anda harus memiliki izin untuk menggunakan Cloud-native API Gateway, DataWorks, dan MaxCompute. Anda harus memiliki peran Development untuk ruang kerja terkait di DataWorks. |
Aktivasi layanan | Aktifkan layanan cloud yang diperlukan | Aktifkan Cloud-native API Gateway. Catatan
|
Persiapan resource | Serverless resource group | Pada pengaturan jaringan Serverless resource group, bind VPC dan vSwitch untuk Data Service. Penting Catat informasi VPC untuk resource group ini. Anda akan memerlukannya saat membuat instans gateway. Kami sangat menyarankan menggunakan VPC yang sama untuk instans gateway dan Serverless resource group guna menyederhanakan konektivitas jaringan. |
Data uji MaxCompute | Di proyek MaxCompute Anda, jalankan pernyataan DDL berikut untuk membuat tabel Jalankan pernyataan DML berikut untuk memasukkan data uji: | |
Sumber data DataWorks | Di bagian Workspace Management Konsol DataWorks, konfigurasikan sumber data yang mengarah ke proyek MaxCompute tersebut. |
Langkah 1: Siapkan resource dasar
Pada langkah ini, Anda membuat instans gateway untuk menghosting layanan API, nama domain untuk akses publik, dan unit logis (REST API) untuk mengelompokkan API Anda.
1. Buat instans gateway
Instans gateway adalah mesin yang memproses permintaan API.
Masuk ke Konsol Cloud-native API Gateway. Di panel navigasi kiri, klik Instance.
Di bilah navigasi atas, pilih wilayah.
PentingWilayah harus sama dengan wilayah ruang kerja DataWorks Anda.
Di halaman Instance, klik Create Instance.
Di halaman pembelian, konfigurasikan parameter berikut:
Commodity Type: Pilih Pay-as-you-go atau Subscription. Untuk pengujian, Anda dapat memilih Pay-As-You-Go.
Gateway Name: Masukkan nama kustom agar mudah diidentifikasi, misalnya
dataservice-prod.Gateway Specification: Untuk pengujian, Anda dapat memilih spesifikasi single-node. Untuk lingkungan produksi, kami menyarankan menggunakan spesifikasi gateway multi-node untuk memastikan SLA (service-level agreement) yang tinggi.
Network Type: Pilih Public atau Public + Private untuk akses internet publik. Biaya dikenakan untuk traffic jaringan publik.
VPC: Pilih VPC.
PentingUntuk memastikan konektivitas jaringan, kami sangat menyarankan memilih VPC yang sama dengan Serverless resource group. Jika VPC berbeda, Anda harus membuat layanan backend secara manual nanti.
Zone Selection: Pilih Auto-assign atau tetapkan instans secara manual ke zona ketersediaan dan vSwitch yang berbeda.
Resource Group: Pilih resource group sesuai strategi manajemen resource Anda.
Klik Buy Now dan selesaikan pembayaran. Pembuatan instans memerlukan waktu sekitar 1 hingga 5 menit. Saat status instans berubah menjadi Running, pembuatan instans selesai.
Untuk informasi lebih lanjut, lihat Buat instans gateway.
2. Tambahkan nama domain
Jika Anda hanya perlu mengakses API dalam VPC, Anda tidak perlu menambahkan nama domain.
Nama domain adalah titik masuk publik untuk API Anda.
Di panel navigasi kiri Konsol Cloud-native API Gateway, pilih Domain Name. Pastikan wilayah yang dipilih di bilah navigasi atas sama dengan wilayah instans gateway Anda.
Klik Add Domain Name dan konfigurasikan informasi berikut:
Domain Name: Masukkan nama domain Anda sendiri, misalnya
api.example.com. Nama domain mandiri yang digunakan di wilayah Tiongkok daratan harus memiliki Pendaftaran ICP.Protocol: Kami menyarankan memilih HTTPS untuk mengamankan transmisi data. Jika Anda memilih HTTPS, Anda harus memilih Sertifikat SSL yang sudah ada.
Other configurations: Kami menyarankan mengaktifkan Force HTTPS dan Enable HTTP/2 serta menentukan TLS Version sesuai kebutuhan keamanan Anda.
Untuk informasi lebih lanjut, lihat Buat nama domain.
3. Buat REST API
REST API adalah wadah logis yang digunakan untuk mengelola sekelompok API yang memiliki Base Path yang sama. Alur kerja di DataWorks di-bind ke REST API.
REST API setara dengan api group di legacy API Gateway.
Di panel navigasi kiri Konsol Cloud-native API Gateway, klik API. Pastikan wilayah yang benar dipilih di bilah navigasi atas.
Klik Create API. Di halaman Create API, klik Create pada kartu REST API.
Di panel Create REST API, konfigurasikan parameter berikut:
API Name: Masukkan nama untuk koleksi API Anda. Nama harus unik secara global di wilayah saat ini. Contoh:
dataservice-user-api.Base Path: base path API, yang merupakan bagian dari URL. Misalnya, Anda dapat mengatur parameter ini ke
/v1. Jalur akses akhir akan menjadiprotocol://domain/BasePath/APIPath.Version Management: Aktifkan fitur ini sesuai kebutuhan.
Untuk informasi lebih lanjut, lihat Buat REST API dan tambahkan antarmuka.
Langkah 2: Buat dan konfigurasikan API
Pada langkah ini, Anda akan mendefinisikan logika API, menghubungkan ke sumber data, dan mengonfigurasi parameter di DataWorks.
1. Buat alur kerja
Alur kerja digunakan untuk mengelompokkan sejumlah API terkait dan meng-bind-nya ke REST API di API Gateway.
Buka Konsol DataWorks. Di panel navigasi kiri, pilih Data Services > Service Development.
Klik ikon new, lalu pilih Create Workflow.
Di kotak dialog Create Workflow, konfigurasikan parameter berikut:
Workflow Name: Masukkan nama kustom yang unik dalam ruang kerja, misalnya
User Query Service. Panjang nama harus 4 hingga 50 karakter.Gateway Type: Pilih Cloud-native API Gateway.
REST API: Dari daftar drop-down, pilih REST API yang telah Anda buat di Langkah 1, misalnya
dataservice-user-api. Jika API tidak muncul, klik tombol Refresh.PentingSetelah alur kerja di-bind ke REST API, binding tersebut tidak dapat diubah. Pilih REST API dengan hati-hati.
2. Hasilkan API dalam mode wizard
Di halaman Service Development, arahkan kursor ke ikon new lalu klik Create API > Generate API.
Di kotak dialog Generate API, pilih Wizard Mode dan konfigurasikan informasi dasar tentang API:
Location: Pilih Workflow (
User Query Service) yang telah Anda buat pada langkah sebelumnya.API Name: Masukkan nama untuk API, misalnya
Query user by user ID.APIPath: Jalur spesifik API, misalnya
/user/info. Ini digabungkan denganBase Pathuntuk membentuk jalur URL lengkap. Jalur API harus dimulai dengan garis miring (/) dan tidak boleh melebihi 200 karakter.Request Method: Pilih GET atau POST. Jika Anda menggunakan metode GET, parameter permintaan harus ditempatkan di query string.
Response Type: Pilih JSON.
Klik Create untuk membuka halaman pengeditan API berbasis GUI.
CatatanUntuk membuat API dalam mode skrip, lihat Hasilkan API dalam mode skrip.
3. Konfigurasikan API
Di halaman pengeditan API, ikuti alur kerja Select Table > Select Parameters > Configure Parameters untuk mendefinisikan logika inti API.
Pilih tabel (sumber data dan tabel)
Di area Select Table di sisi kiri halaman, konfigurasikan parameter berikut:
Data Source Type: Pilih MaxCompute (ODPS).
Data Source Name: Pilih sumber data yang telah Anda konfigurasikan dalam prasyarat.
Data Table Name: Pilih tabel
user_info.Jika Anda menggunakan sumber data MaxCompute, Anda harus mengonfigurasi Acceleration Method untuk meningkatkan performa.
Pilih parameter (permintaan dan respons)
Setelah memilih tabel, bidang-bidangnya akan muncul di bagian Select Parameters.
Konfigurasi parameter permintaan: Centang kotak untuk bidang
user_id, lalu centang kotak Set as Req Param.Konfigurasi parameter respons: Centang kotak untuk bidang
user_iddanuser_name, lalu centang kotak Set as Resp Param.
Konfigurasi detail parameter permintaan Di tab Request Parameters di sisi kanan, tentukan Sample Value untuk parameter
user_id, misalnya10001. Hal ini menyederhanakan pengujian selanjutnya.Praktik terbaik: Tetapkan bidang indeks sebagai parameter permintaan untuk mengoptimalkan performa kueri.
Konfigurasi kelompok resource layanan dan lingkungan
Di bagian Service Resource Group di sisi kanan, konfigurasikan parameter berikut:
Resource Group Type: Anda harus memilih Exclusive Resource Group for Data Service dan memilih kelompok resource yang di-bind ke ruang kerja saat ini dari daftar drop-down.
Environment Configuration:
Timeout: Waktu maksimum yang ditunggu Cloud-native API Gateway untuk respons dari DataWorks, misalnya
3detik.Maximum Number of Data Records for a Single Request: Jumlah maksimum catatan yang dikembalikan oleh satu panggilan API, misalnya
2000catatan.
Konfigurasi otentikasi keamanan
Konfigurasikan pengaturan di bagian otentikasi keamanan di sisi kanan. Setelah mengaktifkan otentikasi konsumen, Anda dapat memilih salah satu dari tiga jenis otentikasi berikut.
CatatanUntuk setiap ruang kerja, DataWorks secara otomatis membuat konsumen dengan nama yang sama dengan ruang kerja di Cloud-native API Gateway. Anda tidak perlu membuat konsumen secara manual.
Metode
Deskripsi
Kasus penggunaan
API key
Klien menambahkan kredensial ke permintaan dengan cara tertentu, dan gateway memverifikasi validitas serta izinnya. Metode ini berlaku untuk operasi non-sensitif dan kurang aman dibandingkan otentikasi JWT dan Pasangan Kunci Akses. Anda harus mengelola dan melindungi kredensial Anda dengan baik.
Cocok untuk integrasi ringan, cepat, dan skenario dengan persyaratan keamanan umum.
JWT
Token Web JSON (JWT) adalah standar untuk mentransmisikan informasi secara aman antara klien dan server. JWT menggunakan signature HMAC, RSA, atau ECDSA untuk memastikan informasi dapat diverifikasi dan tepercaya. Otentikasi JWT dapat digunakan di gateway untuk menerapkan verifikasi identitas dan kontrol akses.
Cocok untuk sistem terdistribusi dan skenario Single Sign-On (SSO).
HMAC
Ini adalah metode otentikasi signature berbasis Pasangan Kunci Akses yang menggunakan algoritma HMAC. Saat memanggil API, klien harus menggunakan kunci tanda tangan untuk menghitung signature dari konten permintaan dan mengirimkannya ke server untuk verifikasi.
Cocok untuk skenario yang memerlukan integritas data tinggi dan perlindungan terhadap perubahan data.
Save API: Setelah Anda mengonfigurasi semua parameter, klik ikon Save di bilah alat atas.
Langkah 3: Uji, komit, dan publikasikan API
1. Uji API
Anda harus berhasil menguji API sebelum melakukan komit.
Di halaman pengeditan API, klik tombol Test APIs di bilah alat.
Di kotak dialog Test APIs, masukkan nilai yang ada, misalnya
10001, untuk parameter permintaanuser_idlalu klik Start Test.Periksa Response Details di sisi kanan untuk memastikan data yang dikembalikan sesuai harapan. Response Duration menunjukkan performa.
Jika pengujian gagal, periksa konfigurasi sumber data, tabel, parameter, atau kelompok resource berdasarkan pesan error.
2. Commit API
Setelah pengujian berhasil, komit API untuk menghasilkan versi yang siap dipublikasikan.
Di halaman pengeditan API, klik tombol Submission di bilah alat.
Setelah mengkomit API, sistem secara otomatis menghasilkan versi. Anda dapat melihat versi tersebut di tab Version Management di sisi kanan.
Jika proses persetujuan dikonfigurasi untuk ruang kerja Anda, status versi API adalah To Be Requested. Anda harus mengklik Request to Publish untuk mengajukannya guna disetujui. Setelah permohonan disetujui, status berubah menjadi Can Be Published.
Jika tidak ada proses persetujuan yang dikonfigurasi, status versi biasanya Publishable.
3. Publikasikan API ke Cloud-native API Gateway
Ini adalah langkah terakhir untuk men-deploy API ke lingkungan produksi.
Di tab Version di sisi kanan halaman pengeditan API, temukan versi dengan status Can Be Published lalu klik Publish di kolom Actions.
Di kotak dialog Publish API to Cloud-native API Gateway, konfigurasikan parameter wajib berikut:
Domain Name: Pilih nama domain yang telah Anda tambahkan di Langkah 1.
PentingSemua API di bawah REST API yang sama berbagi nama domain yang sama. Perubahan apa pun yang dilakukan pada nama domain selama penerbitan akan memengaruhi semua API di bawah REST API yang sama.
Gateway Instance: Pilih instans gateway yang telah Anda buat di Langkah 1.
Backend Service:
Jika VPC instans gateway sama dengan VPC kelompok resource DataWorks, pilih Default.
Jika VPC berbeda, Anda harus memilih layanan backend yang dibuat di Cloud-native API Gateway.
Buat layanan backend
Setelah mempublikasikan API, API tersebut menjadi aktif dan dapat dipanggil menggunakan alamat pemanggilannya.
Langkah 4: Panggil dan verifikasi API
Panggil API menggunakan kredensial untuk metode otentikasi yang telah Anda konfigurasikan di Langkah 2.3.5.
Di tab Version API yang telah dideploy, temukan versi yang baru saja Anda publikasikan, klik Service Management di sisi kanan untuk membuka halaman manajemen API, lalu lihat detail API.
Di manajemen API, klik alamat di bawah API Name/Path untuk melihat detail API.
Buat dan lakukan panggilan API
URL contoh: Salin URL pemanggilan dari detail API.
Informasi otentikasi: Pilih Service Management > Call APIs > Cloud-native API Gateway untuk melihat metode otentikasi pemanggilan.
Metode pemanggilan: Gunakan
curlatau klien HTTP lain untuk melakukan panggilan dengan menyertakanAppKeydanAppSecretdi header permintaan.Untuk informasi lebih lanjut, lihat Kelola konsumen.
Contoh panggilan cURL:
Otentikasi API key
# Ganti api.example.com dengan nama domain aktual Anda. curl "https://api.example.com/v1/user/info?user_id=10001" \ -X GET \ -H "Content-Type: application/json; charset=utf-8" \ -H "Authorization: Bearer <API_KEY>"Otentikasi HMAC
Untuk detail proses pemanggilan, lihat Otentikasi Pasangan Kunci Akses (HMAC).
# Ganti api.example.com dengan nama domain aktual Anda. curl "https://api.example.com/v1/user/info?user_id=10001" \ -X GET \ -H "x-ca-key: Access Key" \ -H "x-ca-signature: <Base64EncodedSignature>" \ -H "x-ca-signature-method: HmacSHA256" \ -H "Date: Wed, 01 Jan 2025 00:00:00 GMT" \ -H "Accept: application/json" \Periksa respons: Panggilan yang berhasil mengembalikan respons JSON seperti berikut:
{ "data": { "user_id": 10001, "user_name": "Alice" }, "success": true }
Versi API ganda
Cloud-native API Gateway memungkinkan Anda memublikasikan API yang sama ke beberapa instans gateway. Anda dapat menggunakan fitur ini untuk men-deploy API ke lingkungan berbeda, seperti gateway pengujian dan gateway produksi, atau memublikasikan API yang sama ke beberapa instans gateway untuk memenuhi berbagai kebutuhan bisnis.
Publikasikan ke beberapa instans gateway
Di panel Version, temukan versi dengan status Can Be Published lalu klik Publish. Di kotak dialog Publish API to Cloud-native API Gateway, pilih Gateway Instance yang berbeda. Anda dapat mengulangi operasi ini untuk memublikasikan API yang sama ke beberapa instans gateway.
Di instans gateway yang sama, versi lama secara otomatis di-nonaktifkan setelah versi baru dipublikasikan. Versi di instans gateway berbeda tidak saling memengaruhi dan dapat berada dalam status Published secara bersamaan.
Versi ganda di Manajemen Layanan
Setelah API dipublikasikan ke beberapa instans gateway, tampilan di halaman Service Management berubah sebagai berikut.
Daftar manajemen API
Di tab Published APIs di Service Management, beberapa catatan ditampilkan untuk ID API yang sama. Setiap catatan sesuai dengan instans gateway yang dipublikasikan. Kolom Gateway Instance dalam daftar menunjukkan nama dan ID instans gateway untuk setiap catatan.
Halaman detail API
Setelah mengklik nama API untuk membuka halaman detail API, daftar drop-down Gateway Instance muncul di bagian atas halaman. Anda dapat beralih antar instans gateway untuk melihat detail API di instans berbeda, termasuk URL pemanggilan, parameter permintaan, dan parameter respons.