Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Ограничение размера страницы в
Ограничение размера страницы предотвращает подавляющие клиенты или серверы при запросе больших наборов данных. В REST построитель API данных (DAB) использует $first параметр для управления количеством записей, возвращаемых в одном ответе. DAB применяет внутреннее разбиение на страницы на основе курсоров, но $first его можно использовать, даже если продолжение не требуется.
Замечание
$first ограничивает количество возвращаемых строк, но не обрабатывает продолжение. Для нескольких страниц используйте $after.
Перейдите к версии GraphQL этого документа.
Обзор
| Понятие | Description |
|---|---|
| Размер страницы по умолчанию |
runtime.pagination.default-page-size (по умолчанию — 100) |
| Максимальный размер страницы |
runtime.pagination.max-page-size (по умолчанию — 100000) |
| Переопределение клиента | $first |
| Максимальное количество запросов |
$first=-1 запрашивает настроенный максимальный размер страницы |
Если $first опущен, размер страницы по умолчанию применяется автоматически.
Шаблон использования
GET /api/{entity}?$first=N
Example
Ограничить результаты пятью книгами.
GET /api/books?$first=5
Концептуальный SQL
SELECT TOP (5)
id,
sku_title AS title
FROM dbo.books
ORDER BY id ASC;
Пример ответа
{
"value": [
{ "id": 1, "title": "Dune" },
{ "id": 2, "title": "Foundation" },
{ "id": 3, "title": "Hyperion" },
{ "id": 4, "title": "I, Robot" },
{ "id": 5, "title": "The Martian" }
]
}
Правила проверки
| Ввод | Result |
|---|---|
| Упущенный | Использует default-page-size |
| Максимальное число положительного целого числа ≤ | Принято |
-1 |
Развернуто в max-page-size |
0 |
400 (недопустимо) |
< -1 |
400 |
> max-page-size |
400 |
Пример сообщения об ошибке
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
Пример конфигурации
{
"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" ]
}
}
}
}
}
См. также
| Понятие | REST | GraphQL | Цель |
|---|---|---|---|
| Projection | $select | items | Выбор возвращаемых полей |
| Filtering | $filter | фильтр | Ограничение строк по условию |
| Сортировка | $orderby | orderBy | Определение порядка сортировки |
| Размер страницы | $first | first | Ограничение количества элементов на страницу |
| Продолжение | $after | после | Продолжить с последней страницы с помощью курсора |
Замечание
Ключевые слова REST начинаются с $следующих соглашений OData.