Записи (Records)

Ресурс Record — запись с данными в каталоге.

Получить записи

URL: /{api url}/catalogs/{catalogId}/records
      {?viewId}
      {?filters}
      {?fields}
      {?searchText}
      {?sortField}{?sortType}
      {?limit}{?offset}

Метод: GET

Параметры:

  • viewId (number) — идентификатор вида каталога для фильтра записей

  • catalogId (number) — идентификатор каталога

  • fields (json array, опционально) — набор возвращаемых полей записей, формат: ["2", "3"]

  • searchText (string, опционально) — быстрый поиск по вхождению

  • sortField (number, опционально) — идентификатор поля для сортировки

  • sortType (number, опционально) — тип сортировки

    • 1 — по возрастанию (по умолчанию)

    • -1 — по убыванию

  • limit (number, опционально) - количество возвращаемых записей (по умолчанию: 100)

  • offset (number, опционально) — смещение от начала списка (по умолчанию: 0)

  • filters (array | json-объект, опционально) — набор фильтров по полям, формат описан ниже

Параметр filters — фильтр записей по полям

Filters в формате массива (array)

Пример:

filters — массив фильтров. Поэтому в GET-параметрах каждый добавленный к поисковому запросу фильтр имеет свой последовательный идентификатор: filters[№]. Каждый фильтр это объект, состоящий из параметра fieldId (указывает на ID поля для фильтрации данных) и объекта value (параметры поискового запроса). Value для разных типов полей имеет разную структуру.

Формат параметра value для разных типов полей

  • Для текстовых полей — поиск по вхождению: [value] = текст

  • Для чисел, прогресса — поиск по диапазону: [value][at] = Число1, [value][to] = Число2

  • Для дат — поиск по диапазону: [value][at] = Дата1, [value][to] = Дата2

  • Для категории, набора галочек, вопроса, звёзд — поиск по вхождению: [value][0] = 1, [value][1] = 2. Для категории и вопроса доступен также формат: [value]=[1,2,3,5]

  • Для контактов — поиск по вхождению: [value] = текст

  • Для связанных объектов: [value][0][catalogId]=18, [value][0][recordId]=9 Для связанных объектов также возможен фильтр по полям самих связанных записей, если эти поля выведены в карточке в виде расширенных: value[0][catalogId]=18, value[0][filters][0][fieldId]=5, value[0][filters][0][value]=5

  • Для сотрудников: [value][0]=21, [value][1]=22, [value][2]=CURRENT_USER

Filters в формате JSON-объекта

Это расширенный способ указания фильтров для поиска записей по полям. Он позволяет использовать конструкции И и ИЛИ и их комбинации. Filters в таком формате необходимо передавать GET-параметром со значением в формате сериализованного JSON-объекта.

В примерах ниже значения filters передано без сериализации и в многострочном формате (для наглядности).

  1. Пример указания фильтров по полям:

Где fieldIdX — идентификатор поля, а valueX — значения фильтра по полю (формат для разных полей описан выше).

2. Пример с вариантами значения поля:

Где $or — задает условие, что значение поля у найденных записей должно иметь хотя бы одно из перечисленных значений, $and — задает условие, что значение поля у найденных записей должно содержать (то есть иметь как минимум их) все перечисленные значения.

3. Пример с вариантами условий фильтра по полям:

Где $or — одно из условий фильтра по полям должно быть выполнено, $and — все условия фильтров должны быть выполнены. Условия $or и $and могут быть входить друг в друга.

4. Пример с комбинацией вариантов условий по полям и вариантами значений поля:

Параметр fields - набор возвращаемых полей записей

Параметр fields позволяет ограничить набор полей каталога в получаемых записях. Если параметр не указан, то будут получены значения всех полей. Ограничение списка получаемых полей позволяет уменьшать размер получаемых данных, и увеличивает скорость их получения. Также параметр позволяет получить вложенные поля у связанных записей. fields необходимо передавать в GET-запросе параметром со значением в формате массива приведенного к строковому формату( например, методом JSON.stringify() ). Массив состоит из идентификаторов (API ID) полей каталога, и/или JSON-объектов с описанием вложенных полей связанных записей.

Формат массива для получении обычных полей (без расширенных полей в связанных записях):

Пример:

Данный пример получает значения 4, 7 и 12 полей в полученных записях.

Формат JSON-объекта для получения расширенных полей в связанных записях:

  • IDполя1 — поле каталога, из которого получаем записи

  • IDкаталогаХ — Идентификатор каталога связанного в поле IDполя1. Поле «связанный каталог» может иметь несколько источников. Для каждого каталога источника можно указать какие именно поля нужно получить.

  • IDрасширенногоПоляХ — идентификаторы полей связанного каталога, которые нужно получить.

Пример:

Данный пример получает связанные записи из 5-го поля. В связанных записях из 27го каталога получает поля 2 и 6, а в связанных записях из 31го каталога получает поля 7 и 12.

Пример массива с комбинацией получения обычных полей и вложенных полей для связанных записей:

Данный пример получает 4, 5, 8 и 9 поля. Для 5 поля дополнительно получает 2 поле у связанных записей из каталога 27, а для 9 поля — 3 и 4 поле у записей из каталога 19.

Обратите внимание, что массив должен быть приведен к строковому виду для передачи в параметр fields. Так, массив из последнего примера в итоговом виде должен выглядеть так:

Параметр id - фильтр записей по id записи

Параметр id позволяет получить записи с определенными id. id необходимо передавать в GET-запросе.

Пример:

Данный пример получает записи с id 1 и 2.

Получить запись

Метод: GET

Параметры:

  • catalogId (number) — идентификатор каталога

  • recordId (number) — идентификатор записи

  • fields (json array, опционально) — набор возвращаемых полей записей, формат: ["2", "3"]

Создать запись

Метод: POST

Параметры:

  • catalogId (number) — идентификатор каталога

Запрос: (application/json)

Изменить запись

Метод: PATCH

Параметры:

  • catalogId (number) — идентификатор каталога

  • recordId (number) — идентификатор записи

Запрос: (application/json)

Удалить запись

Метод: DELETE

Параметры:

  • catalogId (number) — идентификатор каталога

  • recordId (number) — идентификатор записи

Last updated