Studio Layanan Data memungkinkan Anda membuat API data dari sumber data yang telah ada menggunakan antarmuka tanpa kode atau editor kode. Topik ini memberikan panduan langkah demi langkah untuk membuat API dengan API Gateway, mencakup cara mengaktifkan API Gateway, membuat proses bisnis, serta menghasilkan dan mengonfigurasi API.
Untuk cloud-native API Gateway, lihat Buat, publikasikan, dan panggil API (cloud-native API Gateway).
Prasyarat
Anda telah mengonfigurasi sumber data di halaman . Untuk detailnya, lihat Konfigurasikan sumber data.
Layanan data memerlukan kelompok sumber daya. Di lingkungan produksi, kami menyarankan menggunakan kelompok sumber daya arsitektur tanpa server. Untuk detailnya, lihat Kelompok sumber daya dan konektivitas jaringan.
Studio Layanan Data
Masuk ke Konsol DataWorks. Di wilayah target, klik di panel navigasi sebelah kiri. Pilih ruang kerja dari daftar drop-down dan klik Go to DataService Studio.
Langkah 1: Siapkan API Gateway
Sebelum membuat proses bisnis, selesaikan tugas berikut di konsol API Gateway.
Masuk ke Konsol API Gateway dan aktifkan API Gateway.
Di konsol API Gateway, buat kelompok API. Kelompok API adalah kumpulan API untuk fitur atau skenario tertentu dan merupakan unit manajemen dasar API di API Gateway.
PentingWilayah API Gateway harus sesuai dengan wilayah ruang kerja DataWorks.
Langkah 2: Buat proses bisnis
Layanan data menggunakan proses bisnis untuk mengorganisasi pengembangan API berdasarkan domain bisnis. Setiap proses bisnis harus di-bind ke kelompok API. Sebelum dapat menghasilkan API, Anda harus terlebih dahulu membuat proses bisnis.
Di halaman Service Development, klik ikon
dan pilih Create Workflow.Di kotak dialog Create Workflow, konfigurasikan parameter.
Parameter
Deskripsi
Workflow Name
Nama harus unik dalam ruang kerja. Panjangnya harus 4 hingga 50 karakter, dimulai dengan huruf atau karakter Tionghoa, serta dapat berisi karakter Tionghoa, huruf, angka, dan garis bawah (_).
API grouping
Pilih kelompok API yang telah Anda buat di Langkah 1. Untuk membuat kelompok baru, buka konsol API Gateway.
PentingSetelah proses bisnis di-bind ke kelompok API, Anda tidak dapat mengubah kelompok tersebut. Pilih kelompok dengan hati-hati.
Business Description
Masukkan deskripsi untuk proses bisnis. Deskripsi tidak boleh melebihi 180 karakter.
Klik Determine. Setelah proses bisnis dibuat, Anda dapat melihatnya di daftar Workflow.
Langkah 3: Pilih mode API
Layanan Data memungkinkan Anda membuat API dalam wizard mode atau script mode. Kedua mode memiliki proses konfigurasi API dasar yang sama, tetapi berbeda dalam cara membangun logika kueri.
Perbandingan mode
Kategori fitur | Fitur | Wizard mode | Script mode |
Objek kueri | Kueri tabel data tunggal dari satu sumber data | Didukung | Didukung |
JOIN multi-tabel dalam satu sumber data | Tidak didukung | Didukung | |
Kondisi kueri | Kueri kesamaan, rentang, dan pencocokan kabur | Didukung dengan memilih operator | Didukung dengan mendefinisikan SQL kustom |
Kondisi MyBatis dinamis (seperti parameter opsional) | Tidak didukung | Didukung dalam Advanced SQL Mode | |
Hasil kueri | Mengembalikan nilai bidang mentah dan membagi hasil menjadi halaman | Didukung | Didukung |
Operasi matematika dan fungsi agregat | Tidak didukung | Didukung |
Memilih mode
Gunakan wizard mode: untuk kueri sederhana pada satu tabel data, seperti penyaringan berdasarkan kesamaan, pencocokan kabur, atau rentang. Mode ini menyediakan antarmuka visual tanpa kode untuk konfigurasi API.
Gunakan script mode: untuk kueri lanjutan, seperti JOIN multi-tabel, subkueri bersarang, agregasi, atau kondisi dinamis dengan parameter opsional.
Anda dapat mengonversi API dari wizard mode ke script mode, tetapi perubahan ini tidak dapat dikembalikan. Untuk informasi lebih lanjut, lihat Lampiran: Konversi dari wizard mode ke script mode.
Langkah 4: Hasilkan API
Di halaman Service Development, arahkan kursor ke ikon
dan klik .Atau, buka proses bisnis yang relevan, klik kanan API, lalu pilih .
Di kotak dialog Generate API, konfigurasikan parameter.
Parameter
Deskripsi
API Mode
Pilih Wizard Mode atau Code Editor. Jika Anda memilih script mode, Anda juga harus memilih SQL Mode (Basic SQL atau Advanced SQL).
Basic SQL: Tulis logika kueri menggunakan sintaks SQL dasar.
Advanced SQL: Tulis logika kueri menggunakan sintaks SQL yang mendukung tag MyBatis. Tag yang didukung meliputi if, choose, when, otherwise, trim, foreach, dan where.
API Name
Nama dapat berisi karakter Tionghoa, huruf, angka, dan garis bawah (_). Nama harus dimulai dengan huruf atau karakter Tionghoa dan panjangnya 4 hingga 50 karakter.
APIPath
Jalur titik akhir API. Ini adalah jalur permintaan relatif terhadap host layanan, misalnya /user. Jalur dapat berisi huruf, angka, garis bawah (_), dan tanda hubung (-). Jalur harus dimulai dengan garis miring (/) dan panjang maksimal 200 karakter.
Protocol
Mendukung HTTP dan HTTPS.
Untuk memanggil API melalui HTTPS, Anda harus mempublikasikannya ke API Gateway, mengikat domain kustom, dan mengunggah sertifikat SSL di konsol API Gateway. Untuk informasi lebih lanjut, lihat Dukungan untuk HTTPS.
Request Method
Mendukung GET dan POST.
CatatanJika Anda memilih GET, lokasi parameter permintaan harus QUERY. Jika Anda memilih POST, lokasi ini dapat berupa QUERY atau Body.
Response Type
Hanya JSON yang didukung.
Visible Scope
Work space: API terlihat oleh semua anggota ruang kerja saat ini.
Private: API hanya terlihat oleh pemiliknya. Saat ini, otorisasi kepada pengguna lain tidak didukung.
Tag
Pilih hingga lima tag dari daftar. Setiap tag panjangnya maksimal 20 karakter. Untuk informasi lebih lanjut, lihat Buat dan Kelola Tag API.
Description
Masukkan deskripsi singkat untuk API. Deskripsi tidak boleh melebihi 2.000 karakter.
Location
Pilih proses bisnis yang sudah ada untuk menyimpan API. Struktur jalur default adalah "proses bisnis/Nama Proses Bisnis/API".
Klik Determine untuk membuka halaman pengeditan API.
Langkah 5: Konfigurasikan API
1. Pilih sumber data dan tabel
Klik ganda API untuk membuka halaman editnya. Di area Table, konfigurasikan parameter seperti Data Source Type, Data Source Name, dan Data Source Environment. Parameter konfigurasi bervariasi tergantung jenis sumber data. Lihat UI untuk parameter spesifiknya.
Anda harus terlebih dahulu mengonfigurasi sumber data di . Daftar drop-down tabel data mendukung pencarian berdasarkan nama tabel.
Dalam script mode, Anda harus terlebih dahulu memilih sumber data. Anda hanya dapat melakukan kueri JOIN multi-tabel dalam satu sumber data.
Di ruang kerja mode standar, Anda dapat menggunakan parameter Data Source Environment untuk mengakses sumber data di lingkungan pengembangan atau produksi. Untuk informasi lebih lanjut, lihat Perbedaan antara mode ruang kerja.
Untuk sumber data MaxCompute, Anda dapat menggunakan Acceleration Service DataService DataWorks atau fitur MaxCompute MCQA untuk mempercepat kueri. Untuk menggunakan layanan akselerasi, Anda harus terlebih dahulu membuat item akselerasi. Untuk informasi lebih lanjut, lihat Layanan akselerasi.
2. Definisikan logika kueri
Anda mendefinisikan logika kueri secara berbeda di wizard mode dan script mode.
Wizard mode: pilih parameter
Setelah memilih tabel data, semua bidang tabel akan ditampilkan secara otomatis di area Select Parameters. Pilih kotak centang Set as Req Param dan Set as Resp Param untuk bidang yang Anda perlukan.
Untuk mengurutkan hasil kueri, klik tombol Sort di samping bidang untuk menambahkannya ke daftar pengurutan. Anda dapat menambahkan beberapa bidang ke daftar. Nomor urut menentukan prioritas, dengan angka lebih kecil menunjukkan prioritas lebih tinggi. Anda dapat menyesuaikan prioritas menggunakan tombol Move Up dan Move Down. Untuk setiap bidang, Anda dapat memilih Ascending order atau Descending order.
Script mode: tulis SQL kueri
Di area Edit Query SQL, masukkan pernyataan SQL kueri.
Mode Basic SQL: Gunakan ${paramName} untuk menandai parameter permintaan. Bidang setelah SELECT adalah parameter respons, dan ${param} dalam klausa WHERE adalah parameter permintaan.
Ikuti aturan berikut saat menulis pernyataan SQL:
Kueri tabel tunggal, kueri JOIN multi-tabel, dan kueri bersarang dalam satu sumber data didukung.
Beberapa pernyataan SQL, komentar, dan sintaks non-SELECT seperti
INSERT,UPDATE, atauDELETEtidak didukung.SELECT *tidak didukung. Anda harus secara eksplisit menentukan kolom yang akan dikueri.Jika nama kolom mencakup prefiks tabel (misalnya, t.name), Anda harus memberinya alias (misalnya, t.name as name). Anda juga harus memberikan alias untuk fungsi agregat.
Menempatkan ${param} dalam tanda kutip tidak didukung. Untuk menggabungkan string, gunakan
concat('abc', ${xyz}, '123').Mode Basic SQL tidak mendukung pengaturan parameter sebagai opsional.
Mode Advanced SQL mendukung sintaks tag MyBatis (misalnya, if, choose, when, otherwise, trim, foreach, dan where), yang memungkinkan Anda secara fleksibel mengimplementasikan logika kueri kompleks seperti validasi nilai null, iterasi multi-nilai, kueri tabel dinamis, dan pengurutan dinamis. Untuk contoh kode skenario umum, lihat Lampiran: Contoh Advanced SQL (sintaks MyBatis).
Saat menggunakan karakter khusus dalam mode Advanced SQL, Anda harus melakukan escape:
Karakter khusus | Karakter escape | Deskripsi |
> | > | Lebih besar dari |
>= | >= | Lebih besar dari atau sama dengan |
< | < | Kurang dari |
<= | <= | Kurang dari atau sama dengan |
& | & | Dan |
' | ' | Tanda kutip tunggal |
" | " | Tanda kutip ganda |
3. Konfigurasikan parameter permintaan
Klik Request Parameters di panel kanan halaman edit API untuk mengonfigurasi parameter.
Sebelum melihat pratinjau hasil, atur nilai contoh, nilai default, dan deskripsi untuk parameter API.
Untuk kinerja terbaik, gunakan bidang indeks sebagai parameter permintaan.
Dalam mode Advanced SQL, sistem tidak dapat mengurai parameter secara otomatis. Anda harus menambahkan semua parameter permintaan ke daftar secara manual berdasarkan skrip SQL Anda.
Wizard mode tidak mendukung pembuatan rentang nilai untuk bidang menggunakan dua parameter. Gunakan script mode untuk fungsionalitas ini.
Parameter | Deskripsi |
Parameter Name | Nama dapat berisi huruf, angka, garis bawah (_), dan tanda hubung (-). Nama harus dimulai dengan huruf dan panjang maksimal 64 karakter. |
Bound Field | Parameter ini hanya terlihat di wizard mode dan read-only secara default. Parameter ini di-bind ke bidang tabel data yang dipilih. Untuk mengubah binding, gunakan script mode. |
Parameter Type | Jenis yang didukung: STRING, INT, LONG, FLOAT, DOUBLE, dan BOOLEAN. |
Parameter Position | QUERY atau BODY. Jika Anda memilih BODY, Anda harus mengatur Content-Type. Format yang didukung adalah JSON, XML, dan FORM. |
Operator | Parameter ini hanya terlihat di wizard mode. Parameter ini mendefinisikan operator perbandingan untuk parameter. Operator yang didukung meliputi: =, LIKE, IN, NOT IN, NOT LIKE, !=, >, <, >=, dan <=. Catatan Saat jenis sumber data adalah Table Store, hanya operator = yang didukung. |
Required | Menentukan apakah parameter diperlukan untuk pemanggilan API. |
Sample Value | Nilai contoh untuk parameter permintaan. |
Default Value | Nilai default untuk parameter permintaan. |
Description | Deskripsi singkat untuk parameter permintaan. |
4. Konfigurasikan parameter respons dan paginasi
Klik Response Parameters di panel kanan halaman edit API untuk mengonfigurasi nama parameter, jenis parameter, nilai contoh, dan deskripsi. Dalam mode Advanced SQL, Anda harus menambahkan semua parameter respons secara manual berdasarkan skrip SQL Anda.
Di area Advanced Settings, tentukan apakah akan mengaktifkan Pagination for Return Results:
Nonaktif: API mengembalikan maksimal 2.000 catatan secara default.
Aktif: Anda dapat mengatur jumlah maksimum catatan per halaman di halaman Resource Group for DataService Studio berdasarkan jenis kelompok sumber daya.
Saat paginasi diaktifkan, sistem secara otomatis menambahkan parameter umum berikut:
Parameter permintaan umum: returnTotalNum (apakah mengembalikan jumlah total catatan), pageNum (nomor halaman saat ini), dan pageSize (jumlah catatan per halaman).
Parameter respons umum: pageNum, pageSize, dan totalNum (jumlah total catatan).
Jika API tidak memiliki parameter permintaan, Anda harus mengaktifkan paginasi respons.
Dalam script mode, jika pernyataan SQL berisi klausa
limit, klausalimittidak berlaku saat paginasi diaktifkan. Pengaturan paginasi memiliki prioritas lebih tinggi.
5. Konfigurasikan filter (opsional)
Untuk memproses awal parameter permintaan atau memproses akhir hasil kueri, klik Filter di panel navigasi sisi kanan. Pilih kotak centang Use Pre-filter atau Use Post-filter. Kemudian, pilih Function Type dan pilih fungsi. Anda dapat menambahkan beberapa fungsi, yang dieksekusi sesuai urutan penambahannya. Untuk informasi lebih lanjut tentang cara membuat dan menggunakan filter, lihat Buat fungsi Aviator dan Buat fungsi Python.
Untuk menggunakan fungsi Python sebagai filter, Anda harus terlebih dahulu mengaktifkan DataWorks Edisi Profesional atau versi yang lebih tinggi serta menggunakan kelompok sumber daya layanan publik.
Untuk menggunakan fungsi Aviator sebagai filter, tidak ada batasan edisi DataWorks, tetapi Anda harus menggunakan kelompok sumber daya layanan eksklusif.
Jika fungsi tidak muncul di daftar drop-down filter, periksa apakah fungsi tersebut telah dipublikasikan. Untuk informasi lebih lanjut, lihat Publikasikan fungsi.
6. Konfigurasikan kelompok sumber daya layanan
Di panel navigasi sisi kanan, klik Resource Group for DataService Studio untuk mengonfigurasi jenis kelompok sumber daya untuk API.
Anda dapat menggunakan Exclusive Resource Group for DataService Studio atau Shared Resource Group for DataService Studio. Untuk kelompok sumber daya layanan eksklusif, Anda dapat memilih kelompok sumber daya target berdasarkan nama. Kelompok sumber daya layanan publik dikelola secara otomatis oleh DataWorks.
Kami menyarankan Anda hanya menggunakan kelompok sumber daya layanan publik untuk pengujian, bukan di lingkungan produksi.
Jika kelompok sumber daya target tidak ada dalam daftar, buka halaman Kelompok Sumber Daya untuk mengaitkan kelompok sumber daya dengan ruang kerja.
Di area Environment Configuration, Anda dapat mengatur Memory, Timeout, dan Maximum Number of Data Records for a Single Request:
Timeout: Timeout tidak boleh melebihi 30.000 ms untuk instans API Gateway bersama, atau 90.000 ms untuk kelompok sumber daya layanan eksklusif yang menggunakan instans API Gateway khusus.
CatatanWaktu respons API bergantung pada waktu eksekusi SQL. Atur nilai timeout cukup tinggi untuk mengakomodasi hal ini dan mencegah kegagalan permintaan akibat timeout.
Jumlah maksimum catatan per halaman: Maksimal 2.000 untuk kelompok sumber daya layanan publik dan maksimal 10.000 untuk kelompok sumber daya layanan eksklusif. Jumlah total hasil yang dapat dikembalikan API tidak dibatasi.
Langkah 6: Simpan dan kirim
Klik ikon
di bilah alat untuk menyimpan API. Kelompok sumber daya yang dipilih kemudian akan berlaku selama pengujian.
Langkah selanjutnya
Uji dan publikasikan:
Setelah mengonfigurasi API, Anda dapat mengujinya. Untuk informasi lebih lanjut, lihat Uji API.
Setelah pengujian berhasil, klik Submission di pojok kanan atas.
Di halaman edit API, klik Version di panel navigasi sisi kanan. Temukan versi yang ingin Anda publikasikan dan klik Request to Publish. Di halaman aplikasi, jenis aplikasi secara default adalah Publish API in DataService Studio. Masukkan Application Reason dan klik Requested Permissions untuk mengirim permintaan Anda.
CatatanJika ruang kerja Anda di Pusat Persetujuan DataWorks dikonfigurasi dengan alur kerja persetujuan, permintaan harus disetujui sebelum API dapat dipublikasikan. Untuk informasi lebih lanjut, lihat Ikhtisar Pusat Persetujuan.
Setelah API dipublikasikan, pengaturan untuk kelompok sumber daya Studio Layanan Data berlaku untuk semua pemanggilan API.
Kelola API: Di halaman Service Development, Anda dapat mengelola API dengan mengkloning atau menghapusnya dari pohon direktori. Di halaman Service Management, Anda dapat memperluas daftar API untuk melihat detail API yang telah dipublikasikan. Untuk informasi lebih lanjut, lihat Lihat, hapus, pindahkan, kloning, lakukan operasi batch pada, dan cari API berdasarkan kode.
Lampiran: Wizard mode ke script mode
Anda dapat mengonversi API dari wizard mode ke script mode:
Di halaman Service Development, perluas yang berisi API target.
Klik ganda nama API untuk membuka halaman editnya.
Di bilah alat, klik ikon
.Di kotak dialog Prompt, klik Determine.
PeringatanAnda hanya dapat mengonversi API dari wizard mode ke script mode.
Tindakan ini tidak dapat dikembalikan.
Lampiran: Contoh Advanced SQL (MyBatis)
Contoh-contoh ini menunjukkan cara membangun kueri kompleks dengan Advanced SQL dalam script mode. Ganti nama tabel, bidang, dan kondisi kueri dengan milik Anda sendiri.
Contoh 1: Mengontrol urutan pengurutan
Nilai var menentukan urutan pengurutan.
select col01,col02
from table_name
<choose>
<when test='var == 1'>
order by col01
</when>
<when test='var == 2'>
order by col02
</when>
<when test='var == 3'>
order by col01,col02
</when>
<when test='var == 4'>
order by col02,col01
</when>
</choose>Parameter permintaan: var (Jenis: INT, Wajib). Parameter respons: col01, col02.
Contoh 2: Kueri tabel berbeda
Nilai berbeda dari var menentukan tabel mana yang akan dikueri.
select col01
from
<choose>
<when test='var == 1'>
table_name01
</when>
<when test='var == 2'>
table_name02
</when>
</choose>Contoh 3: Klausa WHERE dinamis
Kondisi kueri dihasilkan secara dinamis berdasarkan apakah koleksi list kosong. Jika list tidak null, kondisi kueri yang mencakup nilai bidang area dihasilkan.
SELECT area_id, area, amount
FROM table_name
<where>
<if test='list!=null'>
area in
<foreach collection="list" open="(" close=")" separator="," item="area">
#{area}
</foreach>
</if>
</where>Parameter permintaan: list (Jenis: STRING_LIST, Wajib, Contoh: Beijing,Hangzhou). Parameter respons: area_id, area, dan amount.
Lampiran: Praktik terbaik — parameter opsional
Dalam banyak skenario bisnis, beberapa parameter permintaan perlu bersifat opsional. Hal ini memungkinkan pemanggil memutuskan apakah akan memberikan nilai untuk parameter tersebut. Jika tidak ada nilai yang diberikan, parameter tersebut dikecualikan dari kondisi kueri. Bagian ini menggunakan tabel ods_user_info_d sebagai contoh untuk menunjukkan cara mengatur uid sebagai parameter wajib dan gender sebagai parameter opsional.
Parameter | Jenis | Deskripsi |
uid | INT | ID Pengguna |
gender | STRING | Jenis Kelamin |
age_range | STRING | Rentang Usia |
zodiac | STRING | Zodiak |
Parameter opsional dalam wizard mode
Mengimplementasikan parameter opsional dalam wizard mode sangat mudah. Setelah memilih uid dan gender sebagai parameter permintaan di area Select Parameters, buka panel Request Parameters di sebelah kanan dan kosongkan kotak centang Required untuk parameter gender.
Dipilih: Anda harus memberikan nilai untuk parameter saat memanggil API. Jika tidak, akan muncul exception validasi parameter.
Dikosongkan: Anda dapat memilih apakah akan memberikan nilai untuk parameter. Jika tidak memberikan nilai, parameter tidak termasuk sebagai kondisi kueri.
Contoh Pemanggilan:
Skenario 1: Nilai diberikan untuk
uiddangender. Sistem menjalankan kueri berikut:SELECT uid, gender, age_range, zodiac FROM ods_user_info_d WHERE uid = 0016359810821 AND gender = 'Female';Skenario 2: Nilai diberikan untuk
uid, tetapi tidak ada nilai untukgender. Sistem menjalankan kueri berikut:SELECT uid, gender, age_range, zodiac FROM ods_user_info_d WHERE uid = 0016359810821;
Parameter opsional dalam script mode
Basic SQL tidak dapat mengimplementasikan logika parameter opsional sejati. Bahkan jika Anda mengosongkan kotak centang Required, sistem akan menjalankan kueri dengan parameter = null jika parameter dihilangkan. Hal ini biasanya mengembalikan set hasil kosong alih-alih mengabaikan kondisi. Untuk mengimplementasikan parameter opsional, Anda harus menggunakan mode advanced SQL.
Dalam mode advanced SQL, gunakan tag MyBatis <if> untuk mengimplementasikan logika kondisional:
SELECT uid, gender, age_range, zodiac
FROM ods_user_info_d
<where>
<if test='gender!=null'>
gender = ${gender}
</if>
and uid = ${uid}
</where>Tag
<where>secara otomatis menangani kata kunci WHERE dan menghapus awalan AND atau OR yang berlebihan.Tag
<if test='gender!=null'>menambahkan kondisi ke kueri hanya jika Anda memberikan nilai non-null untuk parametergender.Setelah mengonfigurasi pernyataan SQL, tambahkan secara manual parameter
uiddangenderdi panel Request Parameters di sebelah kanan, dan kosongkan kotak centang Required untuk parametergender.
Perilakunya sama seperti di wizard mode: kondisi gender diterapkan saat nilai diberikan, dan diabaikan saat dihilangkan.
Konfigurasi parameter opsional
Metode | Implementasi | Kompleksitas | Kasus Penggunaan |
wizard mode | Kosongkan kotak centang "Required". | Rendah | Kueri sederhana pada tabel tunggal |
script mode (basic SQL) | Tidak didukung | — | — |
script mode (advanced SQL) | Bungkus kondisi dalam tag | Sedang | JOIN multi-tabel dan kueri kompleks |