Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penyusun API Data (DAB) menyediakan API web RESTful yang memungkinkan Anda mengakses tabel, tampilan, dan prosedur tersimpan dari database yang terhubung. Setiap objek database yang diekspos didefinisikan sebagai entitas dalam konfigurasi runtime.
Secara default, DAB menghosting titik akhir REST di:
https://{base_url}/api/{entity}
Nota
Semua komponen jalur dan parameter kueri sensitif terhadap huruf besar/kecil.
Kata kunci yang didukung di penyusun API Data
| Konsep | REST | Tujuan |
|---|---|---|
| Projection | $select | Pilih bidang mana yang akan dikembalikan |
| Penyaringan | $filter | Membatasi baris menurut kondisi |
| Pengurutan | $orderby | Tentukan urutan pengurutan |
| Ukuran halaman | $first | Batasi jumlah item per halaman |
| Kelanjutan | $after | Lanjutkan dari halaman terakhir |
Struktur dasar
Untuk memanggil REST API, buat permintaan menggunakan pola ini:
{HTTP method} https://{base_url}/{rest-path}/{entity}
Contoh membaca semua rekaman dari book entitas:
GET https://localhost:5001/api/book
Responsnya adalah objek JSON:
{
"value": [
{ "id": 1, "title": "Dune" },
{ "id": 2, "title": "Foundation" }
]
}
Nota
Secara default, DAB mengembalikan hingga 100 item per kueri kecuali dikonfigurasi sebaliknya (runtime.pagination.default-page-size).
Jenis kueri
Setiap entitas REST mendukung pengumpulan dan pembacaan rekaman tunggal.
| Operasi | Deskripsi |
|---|---|
GET /api/{entity} |
Mengembalikan daftar rekaman |
GET /api/{entity}/{primary-key-column}/{primary-key-value} |
Mengembalikan satu rekaman menurut kunci primer |
Contoh mengembalikan satu rekaman:
GET /api/book/id/1010
Contoh mengembalikan banyak:
GET /api/book
Memfilter hasil
$filter Gunakan parameter kueri untuk membatasi rekaman mana yang dikembalikan.
GET /api/book?$filter=title eq 'Foundation'
Kueri ini mengembalikan semua buku yang judulnya sama dengan "Foundation."
Filter dapat mencakup operator logis untuk kueri yang lebih kompleks:
GET /api/book?$filter=year ge 1970 or title eq 'Dune'
Lihat referensi argumen $filter untuk operator yang didukung seperti eq, ne, lt, le, and, dan or.
Mengurutkan hasil
Parameter $orderby menentukan bagaimana rekaman diurutkan.
GET /api/book?$orderby=year desc, title asc
Ini mengembalikan buku yang diurutkan berdasarkan year menurun, lalu berdasarkan title.
Lihat referensi argumen $orderby untuk detail selengkapnya.
Membatasi hasil {#first-and-after}
Parameter $first membatasi berapa banyak rekaman yang dikembalikan dalam satu permintaan.
GET /api/book?$first=5
Ini mengembalikan lima buku pertama, diurutkan berdasarkan kunci primer secara default.
Anda juga dapat menggunakan $first=-1 untuk meminta ukuran halaman maksimum yang dikonfigurasi.
Pelajari selengkapnya dalam referensi argumen $first.
Melanjutkan hasil
Untuk mengambil halaman berikutnya, gunakan $after dengan token kelanjutan dari respons sebelumnya.
GET /api/book?$first=5&$after={continuation-token}
Token $after mengidentifikasi tempat kueri terakhir berakhir.
Lihat referensi argumen $after untuk detailnya.
Pemilihan bidang (proyeksi)
Gunakan $select untuk mengontrol bidang mana yang disertakan dalam respons.
GET /api/book?$select=id,title,price
Ini hanya mengembalikan kolom yang ditentukan.
Jika bidang hilang atau tidak dapat diakses, DAB mengembalikan 400 Bad Request.
Lihat referensi argumen $select untuk detailnya.
Memodifikasi data
REST API juga mendukung operasi buat, perbarui, dan hapus tergantung pada izin entitas.
| Metode | Tindakan |
|---|---|
POST |
Membuat item baru |
PUT |
Ganti item yang sudah ada (atau buat jika hilang) |
PATCH |
Perbarui item yang sudah ada (atau buat jika hilang) |
DELETE |
Menghapus item menurut kunci utama |
Contoh membuat rekaman baru:
POST /api/book
Content-type: application/json
{
"id": 2000,
"title": "Leviathan Wakes"
}
Contoh memperbarui rekaman yang sudah ada:
PATCH /api/book/id/2000
Content-type: application/json
{
"year": 2011,
"pages": 577
}
Contoh menghapus rekaman:
DELETE /api/book/id/2000