Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Begränsa sidstorleken med
Om du begränsar sidstorleken kan du inte överbelasta klienter eller servrar när du kör frågor mot stora datauppsättningar. I GraphQL använder first Data API Builder (DAB) argumentet för att styra hur många poster som returneras i ett enda svar. DAB tillämpar markörbaserad sidnumrering internt, men first kan användas separat för att helt enkelt begränsa resultatstorleken.
Anmärkning
              first begränsar antalet returnerade poster men hanterar inte själva fortsättningen. För flera sidor använder du after.
Gå till REST-versionen av det här dokumentet.
Översikt
| Begrepp | Description | 
|---|---|
| Standardstorlek för sidor | 
              runtime.pagination.default-page-size (standardvärdet är 100) | 
| Maximal sidstorlek | 
              runtime.pagination.max-page-size (standardvärdet är 100000) | 
| Åsidosättning av klient | first | 
| Begär max | Skicka -1 för att begära den konfigurerade maximala sidstorleken | 
Om first utelämnas tillämpas standardstorleken på sidan automatiskt.
Användningsmönster
query {
  books(first: N) {
    items { id title }
  }
}
Example
Begränsa resultatet till fem böcker.
query {
  books(first: 5) {
    items {
      id
      title
    }
  }
}
Konceptuell SQL
SELECT TOP (5)
  id,
  sku_title AS title
FROM dbo.books
ORDER BY id ASC;
Exempelsvar
{
  "data": {
    "books": {
      "items": [
        { "id": 1, "title": "Dune" },
        { "id": 2, "title": "Foundation" },
        { "id": 3, "title": "Hyperion" },
        { "id": 4, "title": "I, Robot" },
        { "id": 5, "title": "The Martian" }
      ]
    }
  }
}
Valideringsregler
| Indata | Result | 
|---|---|
| Utelämnad | Använder default-page-size | 
| Maximalt positivt heltal ≤ | Accepted | 
-1 | 
Expanderad till max-page-size | 
0 | 
Fel (ogiltigt) | 
< -1 | 
Error | 
> max-page-size | 
Error | 
Exempel på felmeddelande
Invalid number of items requested, first argument must be either -1 or a positive number within the max page size limit of 100000. Actual value: 0
Exempelkonfiguration
{
  "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" ]
        }
      }
    }
  }
}
Se även
| Begrepp | REST | GraphQL | Avsikt | 
|---|---|---|---|
| Projection | $select | items | Välj vilka fält som ska returneras | 
| Filtering | $filter | filtrera | Begränsa rader efter villkor | 
| Sortering | $orderby | orderBy | Definiera sorteringsordningen | 
| Sidstorlek | $first | first | Begränsa antalet objekt per sida | 
| Fortsättning | $after | efter | Fortsätt från den sista sidan med hjälp av en markör | 
Anmärkning
REST-nyckelord börjar med $, enligt OData-konventioner.