Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Lapozás REST-ben
A lapozás a nagy adathalmazokat kisebb, kezelhető oldalakra szűkíti. A REST-ben a Data API Builder (DAB) a lekérdezési paramétert használja a $afterkulcskészletek lapozásához, és stabil és hatékony bejárást biztosít a rendezett eredményeken keresztül. Minden jogkivonat az előző oldal utolsó rekordjának pozícióját jelöli, így a következő kérés ettől a ponttól folytatódhat. Az eltolásos lapozástól eltérően a billentyűkészlet lapozása megakadályozza a hiányzó vagy duplikált sorokat, amikor az adatok megváltoznak a kérések között.
Nyissa meg a dokumentum GraphQL-verzióját.
Gyors áttekintés
| Concept | Description |
|---|---|
$after |
Az előző kérésből visszaadott átlátszatlan folytatási jogkivonat |
$first |
A beolvasandó rekordok maximális száma oldalanként |
nextLink |
A következő oldal URL-címe tartalmazza $after |
Egyszerű lapozás
Ebben a példában az első három könyvet kapjuk meg.
HTTP-kérelem
GET /api/books?$first=3
Fogalmi SQL
SELECT TOP (3)
id,
sku_title AS title
FROM dbo.books
ORDER BY id ASC;
Mintaválasz
{
"value": [
{ "id": 1, "title": "Dune" },
{ "id": 2, "title": "Foundation" },
{ "id": 3, "title": "Hyperion" }
],
"nextLink": "/api/books?$first=3&$after=eyJpZCI6M30="
}
Megjegyzés:
Ha next-link-relative=true konfigurációban van, nextLink relatív elérési utat tartalmaz, ellenkező esetben ez egy abszolút URL-cím.
Folytatás a $after
A $after paraméter a következő oldal folytatási jogkivonatát adja meg. Az érték egy base64 kódolású sztring, amely az előző oldal utolsó rekordját jelöli.
Figyelmeztetés
$after egy átlátszatlan jogkivonatot hordoz, amely azonosítja, hogy hol végződött az utolsó oldal. A jogkivonatokat nem módosíthatóként kezelje, és soha ne próbálja meg létrehozni vagy módosítani őket.
Ebben a példában a következő három könyvet kapjuk meg az utolsó oldal jogkivonata után.
HTTP-kérelem
GET /api/books?$first=3&$after=eyJpZCI6M30=
Fogalmi SQL
SELECT TOP (3)
id,
sku_title AS title
FROM dbo.books
WHERE id > 3
ORDER BY id ASC;
Mintaválasz
{
"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="
}
Az adatok vége
Ha nextLink hiányzik, nincs több beolvasandó rekord.
Az utolsó lap válasza csak egy tömböt valuenextLinktartalmaz.
Mintaválasz
{
"value": [
{ "id": 7, "title": "Rendezvous with Rama" },
{ "id": 8, "title": "The Dispossessed" }
]
}
Megjegyzés:
Bármely séma- vagy rendezési módosítás érvényteleníti a korábban kiadott jogkivonatokat. Az ügyfeleknek újra kell indítaniuk a lapozást az első oldalról.
Konfigurációs példa
{
"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" ]
}
}
}
}
}
Lásd még
| Concept | REST | GraphQL | Cél |
|---|---|---|---|
| Projection | $select | Elemek | Adja meg, hogy mely mezőket adja vissza |
| Filtering | $filter | szűrő | Sorok korlátozása feltétel szerint |
| Rendezés | $orderby | orderBy | Rendezési sorrend meghatározása |
| Oldalméret | $first | first | Az elemek számának korlátozása oldalanként |
| Folytatás | $after | után | Folytatás az utolsó oldalról kurzor használatával |
Megjegyzés:
A REST-kulcsszavak az OData-konvenciók követésével $kezdődnek.