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" – дата первой публикации версии статьи.
Пример ответа:
{
"article_versions": [
{
"id": 43521,
"article_code": "код_статьи_000001",
"comment": null,
"created_at": "2024-01-22T21:06:29.377+03:00",
"created_by": null,
"linked_articles_codes": [],
"plain_body": "Тип: text_html. Канал: Название_канала. Текст_статьи_без_разметки",
"project_id": 23,
"questionnaire_id": null,
"questions": [
"Пример_вопроса_1",
"Пример_вопроса_2",
"Пример_вопроса_3"
],
"record_type_id": null,
"status": "published",
"subtitle": null,
"tag_plus": false,
"textsearchable_index_col": "текст_для_поискового_индекса",
"title": "Название_статьи",
"updated_at": "2024-01-22T21:06:29.377+03:00",
"updated_by": null,
"first_published_at": "2024-01-22T21:06:29.377+03:00",
"classifier_ids": [
4284
],
"answers": [
{
"id": 192846,
"answer_references": [],
"article_version_id": 43521,
"channel": "Название_канала",
"content": "Текст_ответа_с_HTML_разметкой",
"created_at": "2024-01-22T21:06:29.377+03:00",
"media_links": [],
"mime_type": "text_html",
"updated_at": "2024-01-22T21:06:29.377+03:00"
}
],
"article_code_prefix": null,
"double_linked_codes": null,
"virtual_linked_articles_codes": []
}
]
}Версии статей со статусами "Черновик" , "На проверке" и все архивные версии отсутствуют в возвращаемом массиве "article_versions".
Словари (dictionaries)
В каждом объекте словаря возвращается следующий набор параметров:
- id - идентификатор словаря
- name - название словаря
- created_at - дата и время создания словаря
- updated_at - дата и время последнего изменения словаря
- project_id - идентификатор проекта
- updated_by - идентификатор пользователя, изменившего словарь
- created_by - идентификатор пользователя, создавшего словарь
- archive - признак архивности словаря:
- false - словарь активен
- true - словарь помещен в архив
- archive_at - дата и время помещения словаря в архив, если применимо
- dictionary_values - список значений словаря
Пример ответа:
{
"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": "Значение_1",
"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": "Значение_2",
"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" – тип объекта.
"parent_id" - id родительского классификатора
Пример ответа:
{
"id": 174,
"tree_path": "Регистратура.Взрослая_регистратура_филиал_2",
"tree_path_decoded": "Регистратура.Взрослая регистратура филиал 2",
"parent_tree_path": "Регистратура",
"parent_tree_path_decoded": "Регистратура",
"parent_id": 169,
"type": "ArticleClassifier",
"required": false,
"project_id": 4,
"row_order": 1879048192,
"created_at": "2023-10-17T12:40:26.023+03:00",
"updated_at": "2025-10-15T11:24:48.351+03:00",
"created_by": null,
"updated_by": 205
}Типы записей - record types
В каждом объекте возвращается набор следующих параметров:
"id" – идентификатор типа записи;
"name" – название типа записи;
"created_at" – дата и время создания типа записи ;
"updated_at" – дата и время последнего изменения типа записи;
"project_id" – идентификатор проекта;
"updated_by" – идентификатор пользователя, сделавшего изменение;
"created_by" – идентификатор пользователя, создавшего объект;
“archive” - поле, указывающее, активен ли тип записи:
false – тип записи активен;
true – тип записи помещен в архив.
“archive_updated_at” - дата обновления.
Пример ответа:
{
"id": 415,
"name": "Название_типа_записи",
"created_at": "2024-01-22T21:06:29.377+03:00",
"updated_at": "2024-01-22T21:06:29.377+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.
Пример ответа:
{
"id": 43,
"name": "Название_анкеты",
"created_at": "2024-01-22T21:06:29.377+03:00",
"updated_at": "2024-01-22T21:06:29.377+03:00",
"project_id": 4,
"updated_by": null,
"created_by": null,
"questionnaire_fields": [
{
"id": 83,
"questionnaire_id": 43,
"dictionary_id": null,
"question": "Текст_вопроса_1",
"created_at": "2024-01-22T21:06:29.377+03:00",
"updated_at": "2024-01-22T21:06:29.377+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": "Текст_вопроса_2",
"created_at": "2024-01-22T21:06:29.377+03:00",
"updated_at": "2024-01-22T21:06:29.377+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" – название группы. Пример ответа:
Пример ответа:
{
"title": "0",
"surname": "Название_подразделения",
"name": "",
"patronymic": "",
"department_name": "Название_отдела",
"position": "",
"phones": [
"+7 999 999-99-99",
"",
""
],
"email": null,
"weekdays_schedule": {
"понедельник": {
"время начала": "09:00",
"время окончания": "18:00",
"время начала обеда": "13:00",
"время окончания обеда": "14:00"
},
"вторник": {
"время начала": "09:00",
"время окончания": "18:00",
"время начала обеда": "13:00",
"время окончания обеда": "14:00"
},
"среда": {
"время начала": "09:00",
"время окончания": "18:00",
"время начала обеда": "13:00",
"время окончания обеда": "14:00"
},
"четверг": {
"время начала": "09:00",
"время окончания": "18:00",
"время начала обеда": "13:00",
"время окончания обеда": "14:00"
},
"пятница": {
"время начала": "09:00",
"время окончания": "16:45",
"время начала обеда": "13:00",
"время окончания обеда": "14:00"
},
"суббота": {
"время начала": "",
"время окончания": "",
"время начала обеда": "",
"время окончания обеда": ""
},
"воскресенье": {
"время начала": "",
"время окончания": "",
"время начала обеда": "",
"время окончания обеда": ""
},
"выходной день": {
"время начала": "",
"время окончания": "",
"время начала обеда": "",
"время окончания обеда": ""
}
}