Sorgu Parametreleri
Liste uçları JSON:API sorgu parametrelerini kullanır. Her kaynağın izin verdiği filtre, sıralama ve ilişki adları kendi sayfasında listelenir; listede olmayan bir parametre 400 döner.
Sayfalama
?page[number]=2&page[size]=50
| Parametre | Varsayılan | Sınır |
|---|---|---|
page[number] | 1 | — |
page[size] | 15 | En fazla 100 |
Sayfa bilgisi meta.page altında (currentPage, lastPage, perPage, total), gezinme bağlantıları links altında döner. Son sayfada links.next yer almaz; tüm kayıtları çekerken bu alan kalmayınca durun.
let url = `${base}/order/orders?page[size]=100`
while (url) {
const res = await fetch(url, { headers })
const body = await res.json()
await save(body.data)
url = body.links?.next
}
Filtreleme
?filter[orderStatus]=1,2&filter[placedBetween]=2026-10-01,2026-10-31
Virgülle ayrılmış değer alan filtreler birden fazla değerden herhangi biriyle eşleşir. Tarih aralığı alan filtrelerde başlangıç ya da bitişi boş bırakabilirsiniz (2026-10-01,).
Sıralama
?sort=-createdAt,orderNumber
Alan adları virgülle ayrılır; başına - koyduğunuz alan azalan sıralanır. Her kaynak id ile sıralanabilir.
İlişkili kayıtlar
?include=items,customer
İstenen ilişkiler yanıtın included dizisinde gelir ve data[].relationships içinden type + id ile eşlenir:
{
"data": [
{
"type": "orders",
"id": "1042",
"attributes": { "orderNumber": "TS-1042" },
"relationships": {
"items": { "data": [ { "type": "order-products", "id": "5521" } ] }
}
}
],
"included": [
{ "type": "order-products", "id": "5521", "attributes": { "productName": "Klasik Deri Cüzdan", "quantity": 1 } }
]
}
Alan seçimi
?fields[products]=name,price,stock
Yalnız ihtiyacınız olan alanları isteyerek yanıtı küçültebilirsiniz.
İstek limitleri
Bazı uçların dakikalık istek sınırı vardır. Sınırı aştığınızda 429 alırsınız; yanıttaki Retry-After başlığı kaç saniye beklemeniz gerektiğini söyler. Toplu senkronizasyonda istekleri sıraya alın, aynı anda çok sayıda paralel istek göndermeyin.