Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Stránkování s využitím
Stránkování zužuje velké datové sady na menší, spravovatelné stránky. Tvůrce rozhraní DATA API (DAB) v REST používá $after parametr dotazu pro stránkování sady klíčů a poskytuje stabilní a efektivní procházení přes seřazené výsledky. Každý token označuje pozici posledního záznamu z předchozí stránky, což umožňuje dalšímu požadavku pokračovat od tohoto bodu. Na rozdíl od stránkování posunu zabrání stránkování sady klíčů chybějícím nebo duplicitním řádkům, když se data mezi požadavky změní.
Přejděte do verze GraphQL tohoto dokumentu.
Rychlý přehled
| Koncepce | Description |
|---|---|
$after |
Neprůsledný token pokračování vrácený z předchozího požadavku |
$first |
Maximální počet záznamů, které se mají načíst na stránku |
nextLink |
Adresa URL další stránky obsahuje $after |
Základní stránkování
V tomto příkladu dostáváme první tři knihy.
požadavek HTTP
GET /api/books?$first=3
Koncepční SQL
SELECT TOP (3)
id,
sku_title AS title
FROM dbo.books
ORDER BY id ASC;
Ukázková odpověď
{
"value": [
{ "id": 1, "title": "Dune" },
{ "id": 2, "title": "Foundation" },
{ "id": 3, "title": "Hyperion" }
],
"nextLink": "/api/books?$first=3&$after=eyJpZCI6M30="
}
Poznámka:
Pokud next-link-relative=true je v konfiguraci, nextLink obsahuje relativní cestu, jinak se jedná o absolutní adresu URL.
Pokračování s $after
Parametr $after určuje token pokračování pro další stránku. Hodnota je řetězec s kódováním base64 představující poslední záznam předchozí stránky.
Výstraha
$after nese neprůhlený token, který identifikuje, kde poslední stránka skončila. Považovat tokeny za neměnné a nikdy se je nepokoušejte vytvářet ani upravovat.
V tomto příkladu dostáváme další tři knihy za tokenem poslední stránky.
požadavek HTTP
GET /api/books?$first=3&$after=eyJpZCI6M30=
Koncepční SQL
SELECT TOP (3)
id,
sku_title AS title
FROM dbo.books
WHERE id > 3
ORDER BY id ASC;
Ukázková odpověď
{
"value": [
{ "id": 4, "title": "I, Robot" },
{ "id": 5, "title": "The Left Hand of Darkness" },
{ "id": 6, "title": "The Martian" }
],
"nextLink": "/api/books?$first=3&$after=eyJpZCI6Nn0="
}
Konec dat
Pokud nextLink chybí, neexistují žádné další záznamy, které by bylo potřeba načíst.
Poslední odpověď stránky obsahuje pouze value pole bez .nextLink
Ukázková odpověď
{
"value": [
{ "id": 7, "title": "Rendezvous with Rama" },
{ "id": 8, "title": "The Dispossessed" }
]
}
Poznámka:
Jakékoli změny schématu nebo řazení zneplatní dříve vydané tokeny. Klienti musí restartovat stránkování z první stránky.
Příklad konfigurace
{
"runtime": {
"pagination": {
"default-page-size": 100,
"max-page-size": 100000
}
},
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.books"
},
"mappings": {
"sku_title": "title",
"sku_price": "price"
},
"relationships": {
"book_category": {
"cardinality": "one",
"target.entity": "Category",
"source.fields": [ "category_id" ],
"target.fields": [ "id" ]
}
}
},
"Category": {
"source": {
"type": "table",
"object": "dbo.categories"
},
"relationships": {
"category_books": {
"cardinality": "many",
"target.entity": "Book",
"source.fields": [ "id" ],
"target.fields": [ "category_id" ]
}
}
}
}
}
Viz také
| Koncepce | REST | GraphQL | Účel |
|---|---|---|---|
| Projection | $select | items | Výběr polí, která se mají vrátit |
| Filtering | $filter | filtr | Omezení řádků podle podmínky |
| Řazení | $orderby | orderBy | Definování pořadí řazení |
| Velikost stránky | $first | first | Omezení počtu položek na stránku |
| Pokračování | $after | po | Pokračovat z poslední stránky pomocí kurzoru |
Poznámka:
Klíčová slova REST začínají následujícími konvencemi $OData.