Skip to content

Commit 8c9280b

Browse files
AvtandilkoNikita Velgin
andauthored
add ds generic api offset pagination fixes (#229)
Co-authored-by: Nikita Velgin <nikita.velgin@flant.com>
1 parent c0e758b commit 8c9280b

2 files changed

Lines changed: 27 additions & 10 deletions

File tree

content/documentation/admin/datasources/types.ru.md

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -634,8 +634,9 @@ X-API-Key: <ключ>
634634
| `dataPath` | Опционально | Путь к данным в ответе (цепочка ключей через точку) | Любая строка | `data`, `results.items`, `.` | `.` |
635635
| `responseFormat` | Опционально | Формат ответа | `array`, `map` | `array`, `map` | `array` |
636636
| `mapKeyField` | Опционально | При `responseFormat` равном `map`: название поля, в которое записать ключ из JSON-объекта | Любая строка | `slug`, `externalId` | `""` |
637-
| `pageParam` | Опционально | Название параметра для номера страницы (для offset- и page- пагинации) | Любая строка | `page`, `_page`, `pageNumber` | `page` |
638-
| `limitParam` | Опционально | Название параметра для количества элементов на странице (для offset-пагинации) | Любая строка | `limit`, `per_page`, `_limit`, `size` | `limit` |
637+
| `pageParam` | Опционально | Название параметра для номера страницы (для page-пагинации) | Любая строка | `page`, `_page`, `pageNumber` | `page` |
638+
| `offsetParam` | Опционально | Название параметра смещения (для offset-пагинации) | Любая строка | `offset`, `skip` | `offset` |
639+
| `limitParam` | Опционально | Название параметра для количества элементов на странице (для offset-пагинации) | Любая строка | `limit`, `_limit` | `limit` |
639640
| `sizeParam` | Опционально | Название параметра для размера страницы (для page-пагинации) | Любая строка | `size`, `pageSize`, `_size` | `size` |
640641
| `cursorParam` | Опционально | Название параметра для курсора (для cursor-пагинации) | Любая строка | `cursor`, `after`, `next` | `cursor` |
641642
| `pageSize` | Опционально | Количество элементов на странице для пагинации | Положительное целое число | `10`, `20`, `50`, `100` | `100` |
@@ -697,9 +698,10 @@ X-API-Key: <ключ>
697698

698699
- `none` — без пагинации, получает все данные одним запросом.
699700

700-
- `offset` — пагинация по номеру страницы и количеству элементов:
701-
- Использует параметры `pageParam` и `limitParam`.
702-
- Пример: `?page=1&limit=20`.
701+
- `offset` — пагинация по смещению и лимиту:
702+
- Использует параметры `offsetParam` и `limitParam`.
703+
- Смещение начинается с `0` и увеличивается на число полученных записей.
704+
- Пример: `?offset=0&limit=100`, затем `?offset=100&limit=100`.
703705

704706
- `page` — пагинация по номеру страницы и размеру:
705707
- Использует параметры `pageParam` и `sizeParam`.
@@ -724,19 +726,33 @@ paginationType: none
724726
dataPath: .
725727
```
726728

727-
GitLab API (offset пагинация):
729+
GitLab API (page-пагинация):
728730

729731
```yaml
730732
url: https://gitlab.example.com
731733
path: /api/v4/projects
732-
paginationType: offset
734+
paginationType: page
733735
pageParam: page
734-
limitParam: per_page
736+
sizeParam: per_page
735737
pageSize: 20
736738
headers:
737739
Authorization: Bearer <token>
738740
```
739741

742+
DefectDojo API (offset-пагинация):
743+
744+
```yaml
745+
url: https://defectdojo.example.com
746+
path: /api/v2/engagements
747+
paginationType: offset
748+
limitParam: limit
749+
pageSize: 100
750+
dataPath: results
751+
query: "product=42"
752+
headers:
753+
Authorization: Token <token>
754+
```
755+
740756
GitHub API (link header пагинация):
741757

742758
```yaml
@@ -754,9 +770,9 @@ API с вложенными данными:
754770
url: https://api.example.com
755771
path: /data
756772
dataPath: response.data.items
757-
paginationType: offset
773+
paginationType: page
758774
pageParam: page
759-
limitParam: limit
775+
sizeParam: limit
760776
query: "filter=active&sort=name"
761777
```
762778

content/documentation/release-notes/v1.6.0.ru.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,5 @@ description: Заметки о выпуске v1.6.0 — выгрузка ауд
6464
## Исправления
6565

6666
- Удалена возможность создания параметра типа «Entities» для ресурсов.
67+
- Исправлена offset-пагинация в [«GenericAPI»](../../admin/datasources/types/#genericapi) источниках данных.
6768
- Исправлена ошибка при синхронизации большого количества групп пользователя во время авторизации.

0 commit comments

Comments
 (0)