DataService Studio memungkinkan Anda membuat API menggunakan editor kode. Di dalam editor kode, Anda dapat menggunakan sintaks SQL dasar atau sintaks SQL tingkat lanjut untuk mengimplementasikan logika kueri. Sintaks SQL tingkat lanjut mendukung tag umum dari MyBatis seperti if, choose, when, otherwise, trim, foreach, dan where. Anda dapat menggunakan sintaks SQL tingkat lanjut untuk mengimplementasikan logika kueri kompleks seperti pengecekan nilai null, penelusuran multi-nilai, kueri dinamis tabel, pengurutan dinamis, dan kueri agregat.
Catatan Penggunaan
Topik ini memberikan contoh kode tentang cara menggunakan pernyataan SQL tingkat lanjut untuk mengimplementasikan logika kueri saat membuat API dengan editor kode. Topik ini juga menjelaskan pemetaan antara pernyataan SQL dan request parameters serta response parameters dari sebuah API. Anda harus menyesuaikan nama tabel, nama bidang, dan kondisi kueri dalam contoh kode sesuai kebutuhan bisnis Anda.
Saat membuat API, nilai contoh untuk parameter permintaan dan respons tidak diperlukan. Jika Anda menggunakan nilai yang sama untuk parameter permintaan setiap kali menguji API, nilai contoh akan dimuat secara otomatis sebagai input parameter permintaan. Dengan cara ini, Anda tidak perlu berulang kali menentukan nilai untuk parameter tersebut. Nilai contoh hanya untuk referensi.
Untuk informasi lebih lanjut tentang cara membuat API menggunakan editor kode, lihat Membuat API dengan Menggunakan Editor Kode.
Topik ini menyediakan contoh-contoh berikut yang menggunakan sintaks SQL tingkat lanjut:
Contoh 1: Mengurutkan hasil yang dikembalikan berdasarkan bidang tabel menggunakan kondisi
Dalam contoh ini, pernyataan SQL dinamis digunakan. Anda dapat mengonfigurasi variabel var untuk menentukan metode pengurutan hasil kueri.
Jika Anda menetapkan 1 ke variabel
var, hasil kueri diurutkan menggunakan klausaorder by col01.Jika Anda menetapkan 2 ke variabel
var, hasil kueri diurutkan menggunakan klausaorder by col02.Jika Anda menetapkan 3 ke variabel
var, hasil kueri diurutkan menggunakan klausaorder by col01,col02.Jika Anda menetapkan 4 ke variabel
var, hasil kueri diurutkan menggunakan klausaorder by col02,col01.
Kode berikut menunjukkan contohnya.
Ganti nama tabel, bidang, dan kondisi lainnya sesuai kebutuhan bisnis Anda.
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>Gambar berikut menunjukkan contoh konfigurasi yang digunakan untuk membuat API dengan editor kode. Anda dapat menyesuaikan nilai contoh sesuai kebutuhan bisnis Anda.
Parameter Permintaan
Nama Parameter
Tipe
Posisi
Wajib
Nilai Contoh
Nilai Default
Deskripsi
var
INT
QUERY
Ya
1
1
Metode pengurutan.
Parameter Respons
Nama Parameter
Tipe
Nilai Contoh
col01
STRING
shortname
col02
STRING
name
Contoh 2: Meminta data dari tabel yang berbeda menggunakan kondisi
Dalam contoh ini, pernyataan SQL dinamis digunakan. Anda dapat menetapkan nilai berbeda ke variabel var untuk meminta data dari bidang col01 di tabel yang berbeda.
Jika Anda menetapkan 1 ke variabel
var, data dari bidang col01 di tabel table_name01 dikembalikan.Jika Anda menetapkan 2 ke variabel
var, data dari bidang col01 di tabel table_name02 dikembalikan.
Kode berikut menunjukkan contohnya.
Ganti nama tabel, bidang, dan kondisi lainnya sesuai kebutuhan bisnis Anda.
select col01
from
<choose>
<when test='var == 1'>
table_name01
</when>
<when test='var == 2'>
table_name02
</when>
</choose>Gambar berikut menunjukkan contoh konfigurasi yang digunakan untuk membuat API dengan editor kode. Anda dapat menyesuaikan nilai contoh sesuai kebutuhan bisnis Anda.
Parameter Permintaan
Nama Parameter
Tipe
Posisi
Wajib
Nilai Contoh
Nilai Default
var
INT
QUERY
Ya
1
1
Parameter Respons
Nama Parameter
Tipe
Nilai Contoh
col01
STRING
123
Contoh 3: Menentukan apakah akan mempertahankan klausa WHERE berdasarkan apakah nilai bidang adalah null
Dalam contoh ini, kondisi kueri dibuat secara dinamis berdasarkan nilai parameter area dalam koleksi list. Kemudian, data diminta berdasarkan kondisi tersebut.
Jika koleksi list tidak null, kondisi kueri yang berisi nilai bidang area dibuat. Kemudian, koleksi list ditelusuri berdasarkan kondisi kueri, dan elemen-elemen dalam koleksi digabungkan dengan cara tertentu. Akibatnya, data dari bidang area_id, area, dan amount dikembalikan.
Kode berikut menunjukkan contohnya.
Ganti nama tabel, bidang, dan kondisi lainnya sesuai kebutuhan bisnis Anda.
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>Gambar berikut menunjukkan contoh konfigurasi yang digunakan untuk membuat API dengan editor kode. Anda dapat menyesuaikan nilai contoh sesuai kebutuhan bisnis Anda.
Parameter Permintaan
Nama Parameter
Tipe
Posisi
Wajib
Nilai Contoh
Nilai Default
list
STRING_LIST
QUERY
Ya
Beijing,Hangzhou
Beijing
Parameter Respons
Nama Parameter
Tipe
Nilai Contoh
area_id
STRING
123120
area
STRING
Beijing
amount
STRING
50