Связи (Relations)
Ресурс Relations - хранит связи между записями.
Ресурс Relations - хранит связи между записями.
Получить связи
URL: {domain}/api/v1/catalogs/{catalogId}/records/{recordId}/relations
Метод: GET
Данный API-метод возвращает перечень каталогов, полей связи и конкретных записей, которые используют указанную запись как связанную, включая метаинформацию о каталогах, правах доступа пользователя и общее количество связанных записей.
Параметры пути:
catalogId(number) — идентификатор каталогаrecordId(number) — идентификатор записи
Ответ: 200 OK (application/json)
[{ "id": "1", "sectionId": "1", "icon": "content-1", "title": "Название", "privilegeCode": "admin", "fieldId": "2", "fieldName": "Документы", "records": [{ "id": "1", "title": "Название связанного объекта", "created": "2019-08-02T12:21:58.421Z" }], "recordsTotal": 1 }]
Параметры запроса
Все параметры передаются в query-строке URL и являются опциональными. Параметры можно комбинировать для более точной фильтрации результатов.
Фильтрация
**catalogId** — фильтр по каталогам
Фильтрует связи, возвращая только записи из указанных каталогов.
Один каталог:
URL: {domain}/api/v1/catalogs/{catalogId}/records/{recordId}/relations?catalogId={catalogId}
Несколько каталогов:
URL: {domain}/api/v1/catalogs/{catalogId}/records/{recordId}/relations?catalogId={catalogId1}&catalogId={catalogId2}&catalogId={catalogId3}
Где catalogId в query-параметрах — это ID каталога, по которому формируется фильтрация (возвращаемый каталог). При указании нескольких каталогов они перечисляются через знак &.
**fieldId** — фильтр по полю связи
Фильтрует записи по конкретному полю типа "связанный каталог" в указанном каталоге.
Важно: Данный фильтр используется только совместно с фильтром catalogId.
URL: {domain}/api/v1/catalogs/{catalogId}/records/{recordId}/relations?catalogId={catalogId}&fieldId=2
Где 2 — это ID поля типа "связанный каталог" в каталоге, указанном в query-параметре catalogId.
Пример с несколькими каталогами:
URL: {domain}/api/v1/catalogs/27/records/1/relations?catalogId=29&catalogId=28&fieldId=6
В этом случае будут отфильтрованы записи:
в каталоге 29 — по полю с id = 6 этого каталога
в каталоге 28 — по полю с id = 6 этого каталога
Фильтрация выполняется отдельно внутри каждого указанного каталога по полю с соответствующим id.
**hiddenFields** — отображение скрытых полей
Отображает скрытые поля каталога, указанного в query-параметре catalogId. Если в query-параметре не указаны каталоги фильтрации, то отображение сработает по всем связанным каталогам.
По умолчанию скрытые поля не возвращаются.
URL: {domain}/api/v1/catalogs/{catalogId}/records/{recordId}/relations?catalogId={catalogId}&hiddenFields=true
Пагинация
**limit** — лимит записей
Ограничивает количество возвращаемых записей.
URL: {domain}/api/v1/catalogs/{catalogId}/records/{recordId}/relations?limit=50
Допускается использование как с фильтрацией по каталогу/каталогам, так и без дополнительных фильтраций. При использовании limit совместно с фильтром по нескольким каталогам лимит задается на каждый каталог.
Пример:
URL: {domain}/api/v1/catalogs/{catalogId}/records/{recordId}/relations?catalogId=29&catalogId=28&limit=50
В таком случае отобразится:
50 записей из каталога 29
50 записей из каталога 28
**offset** — смещение для пагинации
Количество записей, которое необходимо пропустить для смещения (отсчёт начинается с 0).
URL: {domain}/api/v1/catalogs/{catalogId}/records/{recordId}/relations?catalogId={catalogId1}&catalogId={catalogId2}&offset=3
При указании нескольких каталогов фильтрации параметр offset применяется ко всем указанным каталогам.
Сортировка
**sortField** — поле для сортировки
ID поля в каталоге, по которому выполняется сортировка возвращаемых записей.
URL: {domain}/api/v1/catalogs/{catalogId}/records/{recordId}/relations?sortField=7
Допускается использование как с фильтрацией по каталогу/каталогам, так и без дополнительных фильтраций. При использовании sortField совместно с фильтром по нескольким каталогам сортировка задается на каждый каталог.
Пример:
URL: {domain}/api/v1/catalogs/{catalogId}/records/{recordId}/relations?catalogId=29&catalogId=28&sortField=7
В таком случае сортировка выполнится по следующему принципу:
сортировка значений каталога 29 по его полю с id=7
сортировка значений каталога 28 по его полю с id=7
В случае, если в одном из каталогов отсутствует поле с указанным id для сортировки, значения берутся в том порядке, как они указаны в каталоге.
**sortType** — тип сортировки
Тип сортировки (работает только совместно с фильтром sortField).
sortType=1— по возрастаниюsortType=-1— по убыванию
URL: {domain}/api/v1/catalogs/{catalogId}/records/{recordId}/relations?catalogId={catalogId}&sortField=7&sortType=-1