Epinpark

Sayfalama

Tüm liste (Query) endpoint'leri zorunlu sayfalama ile çalışır. Default değer yoktur — eksik veya geçersiz parametre 400 Bad Request döner.

Query parametreleri

ParametreTipSınır
pageint>= 1
pageSizeint10100
orderBystringEndpoint başına farklı whitelist
orderenumAsc veya Desc

Pagination metadata

Yanıtın header'larında taşınır, body yalnızca List<T> döner:

HeaderAçıklama
X-Total-CountTüm sayfalardaki toplam kayıt
X-PageMevcut sayfa numarası
X-Page-SizeSayfa büyüklüğü
X-Next-PageSonraki sayfa numarası (varsa)
X-Prev-PageÖnceki sayfa numarası (varsa)

Örnek istek/yanıt

İstek
GET /v1/orders?page=1&pageSize=20&orderBy=CreatedAt&order=Desc
200 OK · Response headers
X-Total-Count: 142
X-Page: 1
X-Page-Size: 20
X-Next-Page: 2
Content-Type: application/json
200 OK · Body
[
  { "id": "01H8M...", "orderNumber": "EP-2026-00142", ... },
  { "id": "01H8L...", "orderNumber": "EP-2026-00141", ... }
]

OrderBy whitelist'i

Performans için orderBy her endpoint için sınırlı bir alan kümesini kabul eder (indexli kolonlar). Endpoint sayfasına gidip izinli alanları kontrol edin.

Tipik whitelist'ler:

Endpointİzinli orderBy
/v1/ordersCreatedAt, UpdatedAt, OrderNumber
/v1/offersCreatedAt, UpdatedAt, Price, Quantity
/v1/claimsCreatedAt, ResolvedAt
/v1/settlementsCreatedAt, PaidAt, Amount
/v1/finance-transactionsCreatedAt, Amount

Whitelist dışı değer:

400 Bad Request
{
  "type": "https://public-api.epinpark.com/problems/validation-error",
  "title": "Validation failed",
  "status": 400,
  "detail": "OrderBy must be one of: CreatedAt, UpdatedAt, OrderNumber.",
  "errors": {
    "OrderBy": ["OrderBy must be one of: CreatedAt, UpdatedAt, OrderNumber."]
  }
}

Sayfa dolaşma örneği

Polling için sıralama

İncremental sync (yeni kayıtları periyodik olarak çekmek) için orderBy=UpdatedAt&order=Asc kullanın ve updatedAtFrom filtresiyle birleştirin. Detay için Polling Deseni sayfasına bakın.

HEAD endpoint'i (sayım)

Bazı endpoint'ler HEAD metoduyla sadece toplam sayıyı döndürür:

İstek
HEAD /v1/order-invoices?status=Pending
200 OK · Yanıt
X-Total-Count: 7
(Content-Length: 0)

Bu, "bekleyen fatura sayısı" gibi sayaç bilgisi için body indirimsiz hızlı bir yoldur.