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.
Titik akhir GraphQL di Penyusun API Data (DAB) memungkinkan Anda mengkueri dan memodifikasi data dengan presisi. Setiap kueri mendeklarasikan dengan tepat bidang apa yang Anda butuhkan dan mendukung argumen untuk memfilter, mengurutkan, dan membuat halaman hasil.
Secara default, DAB menghosting titik akhir GraphQL-nya di:
https://{base_url}/graphql
Entitas yang diekspos melalui konfigurasi secara otomatis disertakan dalam skema GraphQL.
Misalnya, jika Anda memiliki books entitas dan authors , keduanya muncul sebagai bidang akar dalam skema.
Nota
Gunakan klien atau IDE GraphQL modern (seperti Apollo, Insomnia, atau VS Code GraphQL) untuk menjelajahi skema dan bidang lengkapi otomatis.
Kata kunci yang didukung di penyusun API Data
| Konsep | GraphQL | Tujuan |
|---|---|---|
| Projection | items | Pilih bidang mana yang akan dikembalikan |
| Penyaringan | saringan | Membatasi baris menurut kondisi |
| Pengurutan | orderBy | Tentukan urutan pengurutan |
| Ukuran halaman | first | Batasi jumlah item per halaman |
| Kelanjutan | sesudah | Lanjutkan dari halaman terakhir |
Struktur dasar
Setiap kueri GraphQL dimulai dengan bidang akar yang mewakili entitas.
{
books {
items {
id
title
price
}
}
}
Hasilnya adalah objek JSON dengan bentuk yang sama dengan kumpulan pilihan Anda:
{
"data": {
"books": {
"items": [
{ "id": 1, "title": "Dune", "price": 20 },
{ "id": 2, "title": "Foundation", "price": 18 }
]
}
}
}
Nota
Secara default, DAB mengembalikan hingga 100 item per kueri kecuali dikonfigurasi sebaliknya (runtime.pagination.default-page-size).
Jenis kueri
Setiap entitas mendukung dua kueri akar standar:
| Pertanyaan | Deskripsi |
|---|---|
entity_by_pk |
Mengembalikan satu rekaman dengan kunci utamanya |
entities |
Mengembalikan daftar rekaman yang cocok dengan filter |
Contoh mengembalikan satu rekaman:
{
book_by_pk(id: 1010) {
title
year
}
}
Contoh mengembalikan banyak:
{
books {
items {
id
title
}
}
}
Memfilter hasil
filter Gunakan argumen untuk membatasi rekaman mana yang dikembalikan.
{
books(filter: { title: { contains: "Foundation" } }) {
items { id title }
}
}
Kueri ini mengembalikan semua buku yang judulnya berisi "Foundation."
Filter dapat menggabungkan perbandingan dengan operator logis:
{
authors(filter: {
or: [
{ first_name: { eq: "Isaac" } }
{ last_name: { eq: "Asimov" } }
]
}) {
items { first_name last_name }
}
}
Lihat referensi argumen filter untuk operator yang didukung seperti eq, neq, lt, lte, dan isNull.
Mengurutkan hasil
Argumen orderBy menentukan bagaimana rekaman diurutkan.
{
books(orderBy: { year: DESC, title: ASC }) {
items { id title year }
}
}
Ini mengembalikan buku yang diurutkan berdasarkan year menurun, lalu berdasarkan title.
Lihat referensi argumen orderBy untuk detail selengkapnya.
Membatasi hasil
Argumen first membatasi berapa banyak rekaman yang dikembalikan dalam satu permintaan.
{
books(first: 5) {
items { id title }
}
}
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 pertama.
Melanjutkan hasil
Untuk mengambil halaman berikutnya, gunakan argumen after bersama kursor dari kueri sebelumnya.
{
books(first: 5, after: "eyJpZCI6NX0=") {
items { id title }
}
}
Token after menandai tempat halaman sebelumnya berakhir.
Lihat setelah referensi argumen untuk detail selengkapnya.
Pemilihan bidang (proyeksi)
Di GraphQL, Anda memilih dengan tepat bidang mana yang muncul dalam respons.
Tidak ada wildcard seperti SELECT *. Minta hanya apa yang Anda butuhkan.
{
books {
items { id title price }
}
}
Anda juga dapat menggunakan alias untuk mengganti nama bidang dalam respons:
{
books {
items {
bookTitle: title
cost: price
}
}
}
Lihat referensi proyeksi bidang untuk detailnya.