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

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

Запрос
Ответ
1
URL: /{api url}/catalogs/{catalogId}/records
2
{?viewId}
3
{?filters}
4
{?fields}
5
{?searchText}
6
{?sortField}{?sortType}
7
{?limit}{?offset}
Copied!
Метод: GET
Параметры:
  • viewId (number) — идентификатор вида каталога для фильтра записей
  • catalogId (number) — идентификатор каталога
  • filters (array, опционально) — набор фильтров по полям
  • fields (json array, опционально) — набор возвращаемых полей записей, формат: ["2", "3"]
  • searchText (string, опционально) — быстрый поиск по вхождению
  • sortField (number, опционально) — идентификатор поля для сортировки
  • sortType (number, опционально) — тип сортировки
    • 1 — по возрастанию (по умолчанию)
    • -1 — по убыванию
  • limit (number, опционально) - количество возвращаемых записей (по умолчанию: 100)
  • offset (number, опционально) — смещение от начала списка (по умолчанию: 0)

Фильтр по полям (filters):

Пример:
1
http://company.bpium.ru/api/v1/catalogs/21/records
2
?limit=50
3
&filters[0][fieldId]=4
4
&filters[0][value][at]=2015-10-27T00:00:00+03:00
5
&filters[0][value][to]=2015-11-19T23:59:59+03:00
6
&filters[1][fieldId]=15
7
&filters[1][value][0][catalogId]=18
8
&filters[1][value][0][recordId]=9
9
&filters[1][value][1][catalogId]=18
10
&filters[1][value][1][recordId]=10
Copied!
Filters — массив фильтров. Поэтому в GET-параметрах каждый добавленный к поисковому запросу фильтр имеет свой последовательный идентификатор: filters[№]. Каждый фильтр это объект, состоящий из параметра fieldId (указывает на ID поля для фильтрации данных) и объекта value (параметры поискового запроса). Value для разных типов полей имеет разную структуру.
1
filters = [
2
{
3
fieldId : X,
4
value : String, или {}, или [], или [ {}, ... ]
5
},
6
...
7
]
Copied!
Формат параметра 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]=21, [value][1]=22, [value][2]=CURRENT_USER
Ответ: 200 OK (application/json)
1
[{
2
"id": "30991",
3
"title": "Record title X",
4
"values": {
5
"2": "Record title X",
6
"3": 333,
7
"4": ["1"],
8
"8": "2015-11-06T21:00:00.000Z",
9
"9": ["1"],
10
"10": null,
11
"14": [{
12
"id": "1",
13
"title": "Victor Nikitin"
14
}],
15
"15": [{
16
"sectionId": "2",
17
"catalogId": "5",
18
"catalogTitle": "Clients",
19
"catalogIcon": "users-10",
20
"recordId": "33",
21
"recordTitle": "Companyname 33"
22
}]
23
}
24
}, {
25
"id": "30990",
26
"title": "Record title Y",
27
"values": {
28
"2": "Record title Y",
29
"3": 333,
30
"4": ["1"],
31
"8": "2015-11-06T21:00:00.000Z",
32
"9": ["1"],
33
"10": null,
34
"14": [{
35
"id": "1",
36
"title": "Victor Nikitin"
37
}],
38
"15": [{
39
"sectionId": "2",
40
"catalogId": "5",
41
"catalogTitle": "Clients",
42
"catalogIcon": "users-10",
43
"recordId": "34",
44
"recordTitle": "Companyname 34"
45
}]
46
}
47
}]
Copied!

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

Запрос
Ответ
1
URL: {domain}/api/v1/catalogs/{catalogId}/records/{recordId}
2
{?fields}
Copied!
Метод: GET
Параметры:
  • catalogId (number) — идентификатор каталога
  • recordId (number) — идентификатор записи
  • fields (json array, опционально) — набор возвращаемых полей записей, формат: ["2", "3"]
Ответ: 200 OK (application/json)
1
{
2
"id": "31007",
3
"title": "Record Title",
4
"privilegeCode": "access", // право на запись
5
"values": {
6
"2": "Record Title", // текстовое поле
7
"3": 333, // число
8
"4": ["1"], // категория, набор галочек, вопрос
9
"8": "2015-11-06T21:00:00.000Z", // дата в 0-м часовом поясе
10
"11": [{ // контакт
11
"contact": "8-901-234-56-78",
12
"comment":"основной"
13
},{
14
"contact":"8-987-654-32-10",
15
"comment":""
16
}]
17
"14": [{ // сотрудник
18
"id": "1",
19
"title": "Victor Nikitin"
20
}],
21
"15": [{ // связанный объект
22
"sectionId": "2",
23
"catalogId": "5",
24
"catalogTitle": "Clients",
25
"catalogIcon": "users-10",
26
"recordId": "33",
27
"recordTitle": "Companyname"
28
}],
29
"16": [{ // файл
30
"id": "5",
31
"title": "bpium_logo.png",
32
"url": "https://..."
33
"size": "8513",
34
"mimeType": "image/png",
35
"metadata": { // уменьшенные копии для изображений
36
"preview" : "https://...",
37
"thumbnail" : "https://..."
38
}
39
}]
40
}
41
}
Copied!
Для получения записи со значениями расширенных полей "Связанный каталог" используется опция ?withFieldsAdditional=true. В ответ добавляется свойство recordValues, где перечислены каталоги выведенные в расширенной форме и их значения
1
"recordValues": {
2
"2": [
3
{
4
"sectionId": "2",
5
"catalogId": "14",
6
"catalogTitle": "Связанный каталог",
7
"catalogIcon": "leisure-15",
8
"recordId": "32",
9
"recordTitle": "Наименование записи",
10
"isRemoved": false
11
}
12
],
13
"4": 100
14
}
Copied!

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

Запрос
Ответ
1
URL: {domain}/api/v1/catalogs/{catalogId}/records
Copied!
Метод: POST
Параметры:
  • catalogId (number) — идентификатор каталога
Запрос: (application/json)
1
{
2
"values": {
3
"2": "Text", // текстовое поле
4
"3": 333, // число
5
"4": ["1","2"], // категория, набор галочек, вопрос
6
"8": "2015-11-06T21:00:00.000Z", // дата в 0-м часовом поясе
7
"11": [{ // контакт
8
"contact": "8-901-234-56-78",
9
"comment":"основной"
10
},{
11
"contact":"8-987-654-32-10",
12
"comment":""
13
}]
14
"14": [{ // сотрудник
15
"id": "1"
16
}],
17
"15": [{ // связанный объект
18
"catalogId": "5",
19
"recordId": "35"
20
}],
21
"16": [{ // файл
22
"src": "https://link.com/voice.mp3",
23
"title": "Awesome voice",
24
"mimeType": "audio/mp3" // необязательный параметр
25
}]
26
}
27
}
Copied!
Ответ: 200 OK (application/json)
1
{
2
"id": "31015" // идентификатор созданной записи
3
}
Copied!

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

Запрос
Ответ
1
URL: {domain}/api/v1/catalogs/{catalogId}/records/{recordId}
Copied!
Метод: PATCH
Параметры:
  • catalogId (number) — идентификатор каталога
  • recordId (number) — идентификатор записи
Запрос: (application/json)
1
{
2
"values": {
3
"2": "text field value",
4
"4": ["2", "4"],
5
"11": [{ // контакт
6
"contact": "8-901-234-56-78",
7
"comment":"основной"
8
},{
9
"contact":"8-987-654-32-10",
10
"comment":""
11
}]
12
"14": [{ // сотрудник
13
"id": "2"
14
},{
15
"id": "3"
16
}],
17
"15": [{ // связанный объект
18
"catalogId": "5",
19
"recordId": "33"
20
},{
21
"catalogId": "5",
22
"recordId": "34"
23
}],
24
25
"16": [ // файл
26
// 96, 97 файлы уже существовали и не были изменены
27
{
28
"id": "96"
29
}, {
30
"id": "97"
31
},
32
// прикрепить новый файл, хранящийся на стороннем сервере
33
{
34
"src": "https://link.com/image.jpg",
35
"title": "Логотип",
36
"mimeType": "image/jpeg" // необязательный параметр
37
}
38
]
39
}
40
}
Copied!
Ответ: 200 OK

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

Запрос
Ответ
1
URL: {domain}/api/v1/catalogs/{catalogId}/records/{recordId}
Copied!
Метод: DELETE
Параметры:
  • catalogId (number) — идентификатор каталога
  • recordId (number) — идентификатор записи
Ответ: 200 OK
Last modified 5d ago