Коллекции

Данный раздел описывает все административные запросы и процесс генерации публичных запросов для работы с коллекциями. Также рассмотрим, как получить список элементов в коллекции и подробно разберем ответ API.

Административные запросы

Административные запросы позволяют управлять коллекциями: создавать, редактировать, публиковать или удалять их.

    Ниже представлен список доступных административных запросов:
  • GET /core/collections/ — получение списка всех коллекций.
  • GET /core/collections/:id — получение данных о конкретной коллекции по id.
  • POST /core/collections/add — создание новой коллекции.
  • POST /core/collections/:id/publish — публикация коллекции.
  • POST /core/collections/:id — обновление существующей коллекции.
  • POST /core/collections/:id/delete — удаление коллекции.
С детальным описанием данных запросов вы можете ознакомится в соответствующих разделах.

Публичные запросы

Публичные запросы используются для получения данных о конкретных элементах коллекции. Динамическая структура эндпоинта позволяет работать с любой коллекцией по её имени.

Короткий запрос:

GET домен/api/{ имя коллекции }

Полный запрос:

GET домен/api/{ имя коллекции }/? { sortBy } & { sortOrder } & { limit } & { page }

Если параметры не указаны, API применяет значения по умолчанию:

  • sortBy=id — поле, по которому происходит сортировка.
  • sortOrder=ASC — порядок сортировки
  • limit=20 — количество элементов на страницу.
  • page=1 — текущая страница.

Пример

Для примера возьмем запрос для коллекции "Книги"

GET
/api/knigis/?sortBy=id&sortOrder=ASC&limit=1&page=1

При успешном запросе, ответ будет выглядеть так:

1{
2  "status": "success",
3  "payload": [
4    {
5      "id": 1,
6      "_hits": null,
7      "_sort": 100,
8      "name": "Книга 1",
9      "active": true,
10      "createdAt": "2024-11-12T11:47:07.000Z",
11      "updatedAt": "2024-11-12T11:47:07.000Z"
12    },
13    {
14      "id": 2,
15      "_hits": null,
16      "_sort": 100,
17      "name": "Книга 2",
18      "active": false,
19      "createdAt": "2024-11-12T11:47:32.000Z",
20      "updatedAt": "2024-11-13T18:21:23.000Z"
21    }
22  ],
23  "pagination": {
24    "limit": 0,
25    "offset": 0,
26    "currentTotal": 2,
27    "total": 2,
28    "page": 0
29  }
30}

Для работы с ответом публичного запроса удобно использовать следующий интерфейс

1interface IKnigi {
2  id: number;
3  _hits: number | null;
4  _sort: number;
5  name: string;
6  active: boolean;
7  age: number;
8  articul: string;
9  createdAt: string;
10  updatedAt: string;
11}