Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Limitation de la taille de page avec
La limitation de la taille de page empêche les clients ou serveurs d’accablants lors de l’interrogation de jeux de données volumineux. Dans REST, le générateur d’API de données (DAB) utilise le paramètre pour contrôler le $first nombre d’enregistrements retournés dans une seule réponse. DAB applique la pagination basée sur le curseur en interne, mais $first peut être utilisée même lorsque la continuation n’est pas nécessaire.
Note
$first limite le nombre de lignes retournées, mais ne gère pas elle-même la continuation. Pour plusieurs pages, utilisez $after.
Accédez à la version GraphQL de ce document.
Aperçu
| Concept | Descriptif |
|---|---|
| Taille de page par défaut |
runtime.pagination.default-page-size (valeur par défaut : 100) |
| Taille maximale de la page |
runtime.pagination.max-page-size (valeur par défaut : 100000) |
| Remplacement du client | $first |
| Demande maximale |
$first=-1 demande la taille maximale de page configurée |
Si $first elle est omise, la taille de page par défaut s’applique automatiquement.
Modèle d’utilisation
GET /api/{entity}?$first=N
Example
Limitez les résultats à cinq livres.
GET /api/books?$first=5
SQL conceptuel
SELECT TOP (5)
id,
sku_title AS title
FROM dbo.books
ORDER BY id ASC;
Exemple de réponse
{
"value": [
{ "id": 1, "title": "Dune" },
{ "id": 2, "title": "Foundation" },
{ "id": 3, "title": "Hyperion" },
{ "id": 4, "title": "I, Robot" },
{ "id": 5, "title": "The Martian" }
]
}
Règles de validation
| Input | Résultat |
|---|---|
| Omis | Utilise default-page-size |
| Entier positif ≤ max | Accepté |
-1 |
Étendue à max-page-size |
0 |
400 (non valide) |
< -1 |
400 |
> max-page-size |
400 |
Exemple de message d’erreur
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
Exemple de configuration
{
"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" ]
}
}
}
}
}
Voir aussi
| Concept | REST | GraphQL | Objectif |
|---|---|---|---|
| Projection | $select | Éléments | Choisir les champs à retourner |
| Filtrage | $filter | filtre | Restreindre les lignes par condition |
| Tri | $orderby | orderBy | Définir l’ordre de tri |
| Taille de la page | $first | first | Limiter le nombre d’éléments par page |
| Continuation | $after | après | Continuer à partir de la dernière page à l’aide d’un curseur |
Note
Les mots clés REST commencent par $les conventions OData suivantes.