Задача
Выполним запрос, в котором получим первые 30 записей, отсортировав по дате обновления в порядке убывания, без поиска по текстовым полям и автором которых является пользователь с id = 583427
Решение
GET https://apigw.intradesk.ru/knowledgebase/odata/kb?ApiKey=65247DBDE14C45A6A275DC1FC0&$skip=0&$top=30&$orderby=updatedatdesc&searchStringMode=none&$filter=createdid eq 583427
Ответ сервера:
{
"@odata.count": 1, // общее количество найденных статей (игнорируя страницы с skip и top)
"value": [
{
"id": 5414, // идентификатор статьи
"name": "О правилах", // название статьи
"descriptionshort": "
<div><div style=\"line-height: .5;\" contenteditable=\"false\"> </div><intradesk_imag ...", // описание статьи, первые 90 символов (теги html присутствуют)
"createdat": "2021-04-15T14:25:02.6780000Z", // дата создания статьи
"createdby": "Назаренко Ольга Андреевна", // ФИО пользователя, создавшего статью
"createdid": 583427, // идентификатор пользователя, создавшего статью
"updatedat": "2021-04-15T14:25:03.6264798Z", // дата последнего изменения статьи
"updatedby": "Назаренко Ольга Андреевна", // ФИО пользователя, последним изменившего статью
updatedid": 957, // идентификатор пользователя, последним изменившего статью
"files": "[{\"id\":\"60784c43e66e7400016c3cff\",\"entityType\":\"kb\",\"entityId\":0,\"name\":\"Проверка_парса.docx\",\"contentType\":\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\"size\":11810,\"target\":20,\"uploadedAt\":\"2021-04-15T14:22:59.589Z\",\"uploadedBy\":\"Назаренко Ольга Андреевна\",\"isNew\":true,\"isDeleted\":false}]", // Строка содержит информацию о файлах, приложенных к статье в виде json
"services": [78932, 222], // идентификаторы сервисов при правах видимости для сервисов
"tags": [188], // идентификаторы тегов
"rights": 40, // другие права видимости статьи (0 - нет доступа (если задан rigthsassignmentfromservice ), 10 - все, 20 - все клиенты, 30 - все сотрудники, 40 - только указанные группы)
"usergroups": [119649, 353], // список идентификаторов компаний и групп, которым видна статья. При выставлении прав доступа rights в положение "Только указанные группы"
"status": 10, // статус статьи (10 - Черновик, 20 - Опубликована)
"rigthsassignmentfromservice": false, // признак, правила видимости заданы от сервис (да\нет)
"_searchhighlights": null,
"isstatus": false,
"weight": 0,
"isarchived": false // признак, удалена ли статья (заархивирована)
}
],
"searchresult":null,
"dictionaries":[
{"id":188,"name":"Инцидент","type":"tags"},
{"id":119649,"name":"Группа Назаренко","type":"usergroup"},
{"id":353,"name":"Клиент МТС","type":"usergroup"}
],
"services":[
{"id":78932,"name":"Сервис обслуживания","path":"78932/"},
{"id":222,"name":"Сервис бухгалтерии","path":"222/"}
]
}
Полная документация к методу в формате swagger (Knowledgebase API)
Другие возможные параметры
$skip - количество записей, которое нужно пропустить, используется для постраничного листания
$top - количество компаний, которое нужно вернуть, используется для постраничного листания
$orderby - название поля для сортировки в списке
$filter - используется для фильтрации списка. Подробнее ниже в Фильтрация списка
$count - true - будет подсчитано количество статей, удовлетворяющих запросу
searchStringMode - поиск по текстовым полям статьи: названии, тексте статьи, названиях файлов, содержимом файлов. none - без поиска, fast - поиск по не точному совпадению, по основе слова; slow - поиск по точному совпадению
Фильтрация списка:
- поиск по текстовым полям (вместе с параметром searchStringMode)
$filter:(contains('_term','автомат))
Теги
-содержит любое из: $filter=((tags/any(s: s eq {tagid_1})) or (tags/any(s: s eq {tagid_2})) or... or (tags/any(s: s eq {tagid_N})))
Автор статьи
- один из: $filter=((createdid eq{userid_1}) or (createdid eq{userid_2}) or ... or (createdid eq{userid_N}))
Пользователь, который изменил статью
- один из: $filter=((updatedid eq{userid_1}) or (updatedid eq{userid_2}) or ... or (updatedid eq{userid_N}))
Опубликована:
да: $filter=(isStatus eq true)4
нет: $filter=(isStatus eq false)
Сервисы:
один из: (servicepath/any(s: s/id eq '{servicepath}'))
где {servicepath} - путь сервиса
Даты, примеры условий
- между: (({datefield} ge cast('{2019-11-01T21:00:00.000Z}', Edm.DateTimeOffset)) and ({datefield} le cast('{2019-12-01T21:00:00.000Z}', Edm.DateTimeOffset)))
- равно - (({datefield} ge cast('{2019-12-01T21:00:00.000Z}', Edm.DateTimeOffset))
- меньше или равно: ({datefield} le cast('2021-04-13T20:59:59.999Z', Edm.DateTimeOffset))
- больше или равно: ({datefield} ge cast('2021-04-12T21:00:00.000Z', Edm.DateTimeOffset))
Дата создания: {datefield}= createdat
Дата изменения: {datefield}= updatedat
даты нужно указывать в формате iso - 2019-12-01T21:00:00.000Z
Задача
Получим статью базы знаний (с кратким описанием), идентификатор которой равен 13138
Решение
GET https://apigw.intradesk.ru/knowledgebase/odata/kb?ApiKey=65247DBDE14C45A6A275DC1FC0&$filter=id eq 13138
Ответ сервера:
Видим, что присутствует поле «descriptionshort» и нет «description», а значение в этом поле заканчивается многоточием.
Полная документация к методу в формате swagger (Knowledgebase API)
Другие возможные параметры
Для получения информации о статьи по ее идентификатору, необходимо воспользоваться запросом на получение списка статей, с указанием фильтра (параметр $filter) по идентификатору.
Внимание! В таких запросах содержимое статьи сокращается.
GET https://apigw.intradesk.ru/knowledgebase/odata/kb?ApiKey=65247DBDE14C45A6A275DC1FC0&$filter=id eq {идентификатор статьи}
Подробнее о запросе и об ответе см. в статье «Получение списка статей базы знаний»
Задача
Получим статью базы знаний (с полным описанием), идентификатор которой равен 13138
Решение
GET https://apigw.intradesk.ru/knowledgebase/api/kb/13138/description?ApiKey=65247DBDE14C45A6A275DC1FC0
Ответ сервера:
{
"id": 7304, //идентификатор статьи
"description": "Для доступа к файлам используйте свои логин/пароль. Администрация" //содержимое статьи
}
Полная документация к методу в формате swagger (Knowledgebase API)
Другие возможные параметры
Для получения статей базы знаний с полным описанием используется следующий запрос:
GET https://apigw.intradesk.ru/knowledgebase/api/kb/{идентификатор статьи }/description?ApiKey=65247DBDE14C45A6A275DC1FC0