Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Ограничение размера страницы с помощью
Ограничение размера страницы предотвращает подавляющие клиенты или серверы при запросе больших наборов данных. В GraphQL построитель API данных (DAB) использует first аргумент для управления количеством записей, возвращаемых в одном ответе. DAB применяет внутреннее разбиение на страницы на основе курсоров, но first можно использовать независимо для простого размера результата.
Замечание
first ограничивает количество возвращаемых записей, но не обрабатывает продолжение. Для нескольких страниц используйте after.
Перейдите к версии REST этого документа.
Обзор
| Понятие | Description |
|---|---|
| Размер страницы по умолчанию |
runtime.pagination.default-page-size (по умолчанию — 100) |
| Максимальный размер страницы |
runtime.pagination.max-page-size (по умолчанию — 100000) |
| Переопределение клиента | first |
| Максимальное количество запросов | Передача -1 запроса настроенного максимального размера страницы |
Если first опущен, размер страницы по умолчанию применяется автоматически.
Шаблон использования
query {
books(first: N) {
items { id title }
}
}
Example
Ограничить результаты пятью книгами.
query {
books(first: 5) {
items {
id
title
}
}
}
Концептуальный SQL
SELECT TOP (5)
id,
sku_title AS title
FROM dbo.books
ORDER BY id ASC;
Пример ответа
{
"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" }
]
}
}
}
Правила проверки
| Ввод | Result |
|---|---|
| Упущенный | Использует default-page-size |
| Максимальное число положительного целого числа ≤ | Принято |
-1 |
Развернуто в max-page-size |
0 |
Ошибка (недопустимая) |
< -1 |
Ошибка |
> max-page-size |
Ошибка |
Пример сообщения об ошибке
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.