Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Limitación del tamaño de página con
Limitar el tamaño de página impide que los clientes o servidores sobrepase al consultar grandes conjuntos de datos. En REST, Data API Builder (DAB) usa el $first parámetro para controlar cuántos registros se devuelven en una única respuesta. DAB aplica la paginación basada en cursores internamente, pero $first se puede usar incluso cuando no se requiere continuación.
Nota:
$first limita el número de filas devueltas, pero no controla la continuación. Para varias páginas, use $after.
Vaya a la versión de GraphQL de este documento.
Información general
| Concepto | Description |
|---|---|
| Tamaño de página predeterminado |
runtime.pagination.default-page-size (el valor predeterminado es 100) |
| Tamaño máximo de página |
runtime.pagination.max-page-size (el valor predeterminado es 100000) |
| Invalidación de cliente | $first |
| Solicitud máxima |
$first=-1 solicita el tamaño máximo de página configurado. |
Si $first se omite, el tamaño de página predeterminado se aplica automáticamente.
Patrón de uso
GET /api/{entity}?$first=N
Example
Limite los resultados a cinco libros.
GET /api/books?$first=5
Conceptual SQL
SELECT TOP (5)
id,
sku_title AS title
FROM dbo.books
ORDER BY id ASC;
Respuesta de ejemplo
{
"value": [
{ "id": 1, "title": "Dune" },
{ "id": 2, "title": "Foundation" },
{ "id": 3, "title": "Hyperion" },
{ "id": 4, "title": "I, Robot" },
{ "id": 5, "title": "The Martian" }
]
}
Reglas de validación
| Input | Resultado |
|---|---|
| Omitido | Usos default-page-size |
| Número entero positivo ≤ máximo | Aceptado |
-1 |
Expandido a max-page-size |
0 |
400 (no válido) |
< -1 |
400 |
> max-page-size |
400 |
Mensaje de error de ejemplo
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
Ejemplo de configuración
{
"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" ]
}
}
}
}
}
Consulte también
| Concepto | REST | GraphQL | Propósito |
|---|---|---|---|
| Projection | $select | items | Elección de los campos que se van a devolver |
| Filtros | $filter | filtro | Restricción de filas por condición |
| Ordenación | $orderby | orderBy | Definición del criterio de ordenación |
| Tamaño de página | $first | primero | Limitar el número de elementos por página |
| Continuación | $after | después | Continuar desde la última página con un cursor |
Nota:
Las palabras clave rest comienzan por $, siguiendo las convenciones de OData.