Общие принципы формирования запросов

При формировании запросов ключевыми методами являются:

  • GET — получение данных из ресурса;
  • POST — создание и размещение нового ресурса;
  • PATCH — обновление ресурса, добавление одного или нескольких изменений в указанный фрагмент ресурса;
  • DELETE — удаление ресурса.

Составляющие части пути запросов:

  • api/v1 — префикс, с которого начинается путь любого запроса;
  • :store — тип сущности:
  • :id— идентификатор сущности, который представляет собой строку размером 12 байт (например, 58238a935baa56173b24f0e4).  Он назначается системой в момент создания и в дальнейшем не может быть изменен. В API link каждой сущности этот идентификатор хранится в поле _id.

Получение списка сущностей

Для получения списка сущностей отправьте запрос 

GET /api/v1/:store. Тело сообщения в данном случае не указывается.

Получение списка доступно для следующих :store:

  • models — модели;
  • objects — объекты;
  • automatons — логика;
  • handlers — обработчики;
  • labels — метки;
  • geofences — геозоны;
  • messages — сообщения;
  • users — пользователи;
  • groups — группы;
  • invites — приглашения;
  • roles — роли;
  • tokens — API токены.

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

  • offset

При запросе списка сущностей максимальное количество отдаваемых объектов составляет 10000. Для того чтобы выгрузить следующие данные, укажите отступ в параметре offset

Например, запрос /api/v1/:store?offset=20000 позволяет получить список из 10000 сущностей, начиная c 20001 включительно.

  • limit

Для того чтобы задать ограничение на количество выгружаемых сущностей, укажите лимит в параметре limit

Например, запрос /api/v1/:store?offset=3&limit=2 позволяет получить список из 2 сущностей, начиная c 4 включительно.

  • only

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

Например, запрос /api/v1/:store?limit=2&only=name,description позволяет получить список из 2 сущностей, причем каждая сущность будет содержать только поля _id (является обязательным), name и description.

  • from и to / begin и end

Для того чтобы запросить список сущностей, созданных в определенный период, укажите нижнюю и верхнюю границу интервала в параметрах from и to соответственно. Аналогично данным параметрам могут быть заданы begin и end. Границы интервала указываются в виде определенных моментов времени в одном из форматов:

1) Unix time — количество миллисекунд с полуночи (00:00:00 UTC) 1 января 1970 года;

2) ISO 8601 — дата и время в формате YYYY-MM-DDThh:mm.

Например, запросы /api/v1/:store?from=1640131200000&to=1640563200000 и  /api/v1/:store?from=2021-12-22T00:00&to=2021-12-27T00:00 позволяют получить список сущностей, созданных в период с 22 по 27 декабря 2021 года.

Получение сущности

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

GET /api/v1/:store/:id. Тело сообщения в данном случае не указывается.

Получение одной сущности доступно для следующих :store:

  • models — модели;
  • objects — объекты;
  • automatons — логика;
  • handlers — обработчики;
  • labels — метки;
  • geofences — геозоны;
  • users — пользователи;
  • groups — группы;
  • roles — роли.

Создание сущности

Для добавления новой сущности в платформу отправьте запрос POST /api/v1/:store с указанием определенных полей.

Создание доступно для следующих :store:

  • models — модели;
  • objects — объекты;
  • automatons — логика;
  • handlers — обработчики;
  • labels — метки;
  • geofences — геозоны;
  • messages — сообщения;
  • groups — группы;
  • roles — роли;
  • tokens — API токены.

Шаблон запроса

POST /api/v1/:store

{

  «some_field»: «SOME_VALUE»,

  «other_field»: «OTHER_VALUE»

}

Изменение сущности

Для изменения полей сущности отправьте запрос 

PATCH /api/v1/:store/:id с указанием желаемых полей. 

Важно: Поле _id является обязательным для каждой сущности и не может быть изменено подобным образом.

Создание доступно для следующих :store:

  • models — модели;
  • objects — объекты;
  • automatons — логика;
  • handlers — обработчики;
  • labels — метки;
  • geofences — геозоны;
  • groups — группы;
  • invites — приглашения;
  • roles — роли.

Шаблон запроса

PATCH /api/v1/:store:id

{

  «some_field»: «NEW_VALUE»,

  «other_field»: «NEW_OTHER_VALUE»

}

Удаление сущности

Для удаления сущности отправьте запрос 

DELETE /api/v1/:store/:id. Тело сообщения в данном случае не указывается.

Удаление доступно для следующих :store:

  • models — модели;
  • objects — объекты;
  • automatons — логика;
  • handlers — обработчики;
  • labels — метки;
  • geofences — геозоны;
  • groups — группы;
  • roles — роли;
  • tokens — API токены.