Query syntax
Every list endpoint accepts the same operator-suffix query string, parsed into a PagedRequest and answered with a PagedResult<T>. It's designed to read naturally in a URL and to be safe — only columns a slice marks queryable are honored.
Filtering
?field=operator:value. Combine with &:
?price=gte:10&status=in:active,pending&name=contains:acme| Operator | Meaning | Example |
|---|---|---|
eq | equals (the default if omitted) | status=eq:active |
neq | not equals | status=neq:archived |
gt gte lt lte | numeric / date comparisons | price=gte:10 |
in | any of (comma-separated) | status=in:paid,shipped |
contains | substring (case-insensitive) | name=contains:acme |
startswith / endswith | prefix / suffix | sku=startswith:ABC |
Sorting
?sort=field:direction — asc or desc:
?sort=createdAt:descPaging
?page=2&pageSize=20A PagedResult<T> returns the page items plus total, page, and pageSize, so the grid can render pagination.
On the frontend
useDataGrid builds this query for you and keeps it in the URL, so a list view is shareable. The multi-select <FacetFilter> emits the in: operator. See Build a list.