Appearance
Документация по API ПИФИЯ
Аутентификация
Метод аутентификации: HTTP BasicAuthentication.
Отдаются все объекты проекта, доступ к которому есть у авторизованного пользователя.
Параметры
| date_from | дата, начиная с которой, нужны изменения * отсутствие параметра — получить с самого начала | дд.мм.гггг чч:мм:сс |
|---|---|---|
| date_to | дата, заканчивая которой, нужны изменения * отсутствие параметра — получить до текущего момента включительно | дд.мм.гггг чч:мм:сс |
| chunk_size | возвращает определенное количество объектов (аналогично LIMIT в SQL) | целое положительное число |
| offset | количество пропускаемых объектов перед началом выборки результатов запроса (аналогично OFFSET в SQL) | целое положительное число |
Эндпоинты API
Получение объектов базы данных api/index
URL: https://dit.optimal-city.ru/api/index Метод: GET
Параметры:
date_from
date_to
chunk_size
offset
Возвращаемые объекты:
Пример запроса:
| Postman | |
|---|---|
| GET | https://dit.optimal-city.ru/api/index?date\_from=01.09.2024 00:00:00&date_to=05.09.2024 00:00:00&chunk_size=10&offset=5 |
| bash |
|---|
| curl -u 'api_user_@mail.ru:password' https://dit.optimal-city.ru/api/index?date_from=01.09.2024 00:00:00&date_to=05.09.2024 00:00:00&chunk_size=10&offset=5 |
Получение объектов «Справочник» — api/directory_entries
URL: https://dit.optimal-city.ru/api/directory_entries Метод: GET
Параметры:
- date_from
- date_to
- chunk_size
- offset
Возвращаемые объекты:
Пример запроса:
| Postman | |
|---|---|
| GET | https://dit.optimal-city.ru/api/directory\_entries?date\_from=05.09.2024 00:00:00&chunk_size=10 |
| bash |
|---|
| curl -u 'api_user_@mail.ru:password' https://dit.optimal-city.ru/api/directory_entries?date_from=05.09.2024 00:00:00&chunk_size=10 |
Версии статей (article versions)
В каждом объекте возвращается набор следующих параметров:
"id" – идентификатор;
"title" – название;
"article_code" – символьный код (один для всех версий одной статьи);
"comment" – комментарий;
"status" – статус версии статьи, передает один из двух статусов:
"published" – опубликована,
"inactive" – неактивна;
"created_at" – дата и время создания статьи;
"updated_at" – дата и время последнего изменения статьи;
"project_id" – идентификатор проекта;
"record_type_id" – идентификатор типа записи;
"questionnaire_id" – идентификатор анкеты;
"questions" – вопросы по которым ищут информацию в статьях;
"tag_plus" – тэг+, чек бокс, передает:
true,
false;
"linked_articles_codes" – идентификаторы связанных статей;
"plain_body" – содержание статьи без html разметки;
"updated_by" – идентификатор пользователя, изменившего версию ;
"textsearchable_index_col" – параметры для поиска;
"created_by" – идентификатор пользователя, создавшего версию;
"subtitle" – альтернативные название статьи;
"classifier_ids" – идентификаторы классификаторов;
"answers" – список ответов статьи;
"id" – идентификатор ответа;
"channel" – канал ответа;
"content" – текст ответа;
"article_version_id" – идентификатор версии статьи;
"created_at" – дата и время создания ответа;
"updated_at" – дата и время последнего изменения ответа;
"mime_type" – тип текста ответа, передаются атрибуты:
"text_html" – текст с html разметкой,
"text_plain" – простой текст без разметки;
"media_links" – возвращает массив url изображений в ответе;
"answer_references" – возвращает массив источников:
"url" – ссылка на источник,
"title" – отображаемый заголовок;
"article_code_prefix" – null;
"double_linked_codes" – null;
"virtual_linked_articles_codes" – идентификаторы привязанных но деактивированных статей;
"first_published_at" – дата первой публикации версии статьи.
Пример ответа:
| json |
|---|
| { "id": 3489, "title": "Заголовок статьи", "article_code": "rsud_000003", "comment": "[]", "status": "published", "created_at": "2024-01-22T21:06:29.377+03:00", "updated_at": "2024-01-22T21:06:29.377+03:00", "project_id": 12, |
"record_type_id": null, "questionnaire_id": null, "questions": [
"Где узнать/ посмотреть график приема"
],
"tag_plus": true,
"linked_articles_codes": [], "plain_body": "текст без разметки", "updated_by": null,
"textsearchable_index_col": "текст для поиска", "created_by": 42,
"subtitle": "Альтернативный заголовок статьи",
"first_published_at": "2024-07-16T14:45:05.171+03:00",
"classifier_ids": [
539
],
"answers": [
{
"id": 7002,
"channel": "operator",
"content": "<p>текст статьи</p>", "article_version_id": 3489,
"created_at": "2024-07-16T14:45:05.171+03:00", "updated_at": "2024-07-16T14:45:05.171+03:00",
"mime_type": "text_html", "media_links": [],
"answer_references": [
{
"url": "https://ru.wikipedia.org/wiki/", "title": "Подробнее
}
]
},
{
"id": 7005,
"channel": "sms",
"content": "текст для смс сообщения", "article_version_id": 3489,
"created_at": "2024-08-21T11:50:50.730+03:00", "updated_at": "2024-08-21T11:50:50.730+03:00",
"mime_type": "text_plain", "media_links": [],
Версии статей со статусами "Черновик" , "На проверке" и все архивные версии отсутствуют в возвращаемом массиве "article_versions".
Словари (dictionaries)
В каждом объекте словаря возвращается следующий набор параметров:
- id - идентификатор словаря
- name - название словаря
- created_at - дата и время создания словаря
- updated_at - дата и время последнего изменения словаря
- project_id - идентификатор проекта
- updated_by - идентификатор пользователя, изменившего словарь
- created_by - идентификатор пользователя, создавшего словарь
- archive - признак архивности словаря:
- false - словарь активен
- true - словарь помещен в архив
- archive_at - дата и время помещения словаря в архив, если применимо
- dictionary_values - список значений словаря
Пример ответа:
| json |
|---|
| { "id": 466, "name": "Каналы", "created_at": "2025-05-30T22:00:44.403+03:00", "updated_at": "2025-05-30T22:00:44.614+03:00", "project_id": 51, "updated_by": null, "created_by": null, "archive": false, "archive_at": null, "dictionary_values": [ { "id": 55176, "dictionary_id": 466, "value": "Чат", "created_at": "2025-05-30T22:00:44.499+03:00", "updated_at": "2025-05-30T22:00:44.499+03:00", "project_id": 51, "updated_by": null, "created_by": null }, { "id": 55177, "dictionary_id": 466, "value": "Оператор", "created_at": "2025-05-30T22:00:44.606+03:00", "updated_at": "2025-05-30T22:00:44.606+03:00", "project_id": 51, "updated_by": null, "created_by": null } ] } |
Классификаторы (classifiers)
В каждом объекте возвращается набор следующих параметров:
"id" – идентификатор классификатора;
"created_at" – дата и время создания классификатора;
"updated_at" – дата и время последнего изменения классификатора;
"project_id" – идентификатор проекта;
"row_order" – последовательность отображения;
"updated_by" – идентификатор пользователя, изменившего классификатор;
"created_by" – идентификатор пользователя, создавшего классификатор;
"required" – поле, указывающее, является ли классификатор обязательным для заполнения:
true – классификатор является обязательным для заполнения;
false – классификатор не является обязательным.
"tree_path_decoded" – полный путь классификатора;
"parent_tree_path_decoded" – родительский каталог классификатора;
"type" – тип объекта.
Пример ответа:
Типы записей - record types
В каждом объекте возвращается набор следующих параметров:
"id" – идентификатор типа записи;
"name" – название типа записи;
"created_at" – дата и время создания типа записи ;
"updated_at" – дата и время последнего изменения типа записи;
"project_id" – идентификатор проекта;
"updated_by" – идентификатор пользователя, сделавшего изменение;
"created_by" – идентификатор пользователя, создавшего объект;
“archive” - поле, указывающее, активен ли тип записи:
false – тип записи активен;
true – тип записи помещен в архив.
“archive_updated_at” - дата и время последнего изменения значения атрибута “archive”
Пример ответа:
| json |
|---|
| { "id": 415, "name": "1-ый тип записи", "created_at": "2025-11-28T13:43:42.918+03:00", "updated_at": "2025-11-28T13:43:42.918+03:00", "project_id": 70, "updated_by": null, "created_by": 205**,** "archive": false**,** "archive_updated_at": null } |
Анкеты - questionnaires
В каждом объекте возвращается набор следующих параметров:
"id" – идентификатор анкеты;
"name" – название анкеты;
"created_at" – дата и время создания анкеты;
"updated_at" – дата и время последнего изменения анкеты;
"project_id" – идентификатор проекта;
"updated_by" – идентификатор пользователя, изменившего анкету;
"questionnaire_fields" – список полей анкеты;
"id" – идентификатор поля;
"questionnaire_id" – идентификатор анкеты;
"dictionary_id" – идентификатор словаря;
"question" – текст поля “Вопрос”;
"created_at" – дата и время создания поля;
"updated_at" – дата и время последнего изменения поля;
"project_id" – идентификатор проекта;
"row_order" – последовательность отображения;
"updated_by" – идентификатор пользователя, внесшего изменение в поле анкеты;
“created_by" – идентификатор пользователя, создавшего анкету;
"required" – указывает на обязательность поля:
true – обязательно для заполнения,
false – необязательно для заполнения;
"created_by" – null.
Пример ответа:
| json |
|---|
| { "id": 43, "name": "Тестовая анкета", "created_at": "2023-09-25T14:36:16.948+03:00", "updated_at": "2023-10-03T22:14:33.841+03:00", "project_id": 4, "updated_by": null, "created_by": null, "questionnaire_fields": [ { "id": 83, "questionnaire_id": 43, "dictionary_id": null, "question": "Подскажите ваш район", "created_at": "2023-09-25T14:37:45.388+03:00", "updated_at": "2023-09-25T14:40:26.592+03:00", "project_id": 4, "row_order": 1610612736, "updated_by": 76, "required": false, "created_by": null }, { "id": 85, "questionnaire_id": 43, "dictionary_id": null, "question": "Подскажите ваш возраст", "created_at": "2023-09-25T14:41:21.058+03:00", "updated_at": "2023-09-25T14:41:32.432+03:00", "project_id": 4, "row_order": -268435456, "updated_by": 76, "required": false, "created_by": null |
Справочники - directory entries
В каждом объекте возвращается набор следующих параметров:
"title" – название справочника;
"surname" – фамилия сотрудника;
"name" – имя сотрудника;
"patronymic" – отчество сотрудника;
"department_name" – название отдела;
"position" – должность сотрудника;
"phones" – список номеров телефона;
"email" – почта;
"weekdays_schedule" – список начала и конца рабочего дня и обеденного времени;
"created_at" – дата и время создания справочника;
"updated_at" – дата и время последнего изменения справочника;
"project_id" – идентификатор проекта;
"classifier_id" – идентификатор общего классификатора справочника;
"phone_visibility" – отображение телефона, принимает значения:
true – включена видимость телефона;
false – выключена видимость телефона.
"schedule" – поле с информацией для озвучивания пользователю;
"updated_by" – id пользователя, изменившего справочник;
"id" – идентификатор записи справочника;
"created_by" – id пользователя, создавшего справочник;
"archive" – поле, указывающее, активен ли справочник:
false – справочник активен;
true – справочник помещен в архив.
"level_id" – идентификатор уровня;
"group_id" – идентификатор группы;
"level_name" – название уровня;
"group_name" – название группы. Пример ответа:
| json |
|---|
| { "title": "0", "surname": "Управление государственной службы и кадров", "name": "", "patronymic": "", "department_name": "По вопросам трудоустройства", "position": "", "phones": [ "84956099726", "", "" ], "email": null, "weekdays_schedule": { "понедельник": { "время начала": "08:00", "время окончания": "17:00", "время начала обеда": "", "время окончания обеда": "" }, "вторник": { "время начала": "08:00", |
"время окончания": "17:00", "время начала обеда": "",
"время окончания обеда": ""
},
"среда": {
"время начала": "08:00",
"время окончания": "17:00", "время начала обеда": "",
"время окончания обеда": ""
},
"четверг": {
"время начала": "08:00",
"время окончания": "17:00", "время начала обеда": "",
"время окончания обеда": ""
},
"пятница": {
"время начала": "08:00",
"время окончания": "15:45", "время начала обеда": "",
"время окончания обеда": ""
},
"суббота": {
"время начала": "",
"время окончания": "",
"время начала обеда": "",
"время окончания обеда": ""
},
"воскресенье": {
"время начала": "",
"время окончания": "",
"время начала обеда": "",
"время окончания обеда": ""
},
"выходной день": {
"время начала": "",
"время окончания": "",
"время начала обеда": "",
"время окончания обеда": ""
}
},