Формулировка проблемы: необходимо реализовать методы API для:
В частности, необходимо возвращать не только код справочника, но и его имя и комментарий. Аналогично для столбцов справочника: возвращать не только код столбца, но и его имя, комментарий и возможность перевода.
Решение:
URL метода: rest/api/dictionaries
.
Тип запроса: GET
.
Метод принимает следующие входные параметры:
getHidden
- возвращать ли скрытые
справочники, true/false (не обяз., по умолчанию false);
locale
(не обяз.) - код локали (при
отсутствии параметра используется
язык
системы по умолчанию).
Пример передаваемых данных.
rest/api/dictionaries?getHidden=false
Метод должен возвращать массив только отображаемых справочников
системы (для getHidden = false
, скрытые сюда не
попадают, как например справочник приоритетов) либо всех, включая
скрытые, справочников (для getHidden = true
).
Каждый элемент массива характеризуется следующими параметрами:
id
- идентификатор справочника;
code
- код справочника;
name
- имя справочника;
comment
- комментарий к справочнику;
Пример возвращаемого массива.
[ { "id": "eb77639e-60b8-4a50-8327-0482063e8935", "code": "resolution_work_types", "name": "Типы работ по резолюции", "comment": "Значения выпадающего списка типа работы при наложении резолюции" }, { "id": "467d3eac-252c-427e-bd27-ba8704587257", "code": "calendar_types", "name": "Назначения календаря", "comment": "Статусы сотрудников" }, { "id": "7b953be8-bddb-4ce4-bbfd-ae9548f69c7f", "code": "BookPointer", "name": "Уровень проведения тренингов", "comment": "" }, { "id": "a830ed90-1ef5-4829-b3a4-efa8d087ed6a", "code": "BookPointer2", "name": "Уровень корпоративного духа", "comment": "" }, { "id": "9b077c41-4efa-48ce-8ce9-af2fe6145e96", "code": "send_items", "name": "Пункты меню отправки", "comment": "Пункты меню отправки документа/работы" }, { "id": "f75e8f6a-7b5a-493b-946b-ac35a628624f", "code": "Vid_otpuska", "name": "Виды отпусков", "comment": "" }, { "id": "dfb986ca-6dd2-415f-9304-bfab19d6d4af", "code": "nazionalnost", "name": "Национальности", "comment": "" }, { "id": "a0b8ee66-2820-4fb7-991d-4723955ccef5", "code": "action_progress", "name": "Подписи прогресса поручений", "comment": "Подписи прогресса поручений" }, { "id": "2d7729d7-1230-4c1c-a952-ebb4cf65278a", "code": "resolution", "name": "Тексты резолюций", "comment": "Справочник стандартных текстов резолюций" }, { "id": "b08289f0-fd6b-4b3c-bc99-fae8d4296acb", "code": "obrazovanie", "name": "Образование", "comment": "" } ]
URL метода: rest/api/dictionaries/{code}
, где
code
- это код справочника.
Тип запроса: GET
.
Метод принимает следующие входные параметры:
getColumns
- возвращать ли описание
справочника, true/false (не обяз., по умолчанию true);
getItems
- возвращать ли записи
справочника, true/false (не обяз., по умолчанию true);
locale
- код локали (при отсутствии
параметра используется
язык
системы по умолчанию)..
Пример передаваемых данных.
rest/api/dictionaries/send_items?getColumns=true&getItems=true
Метод должен возвращать массив с параметрами:
id
- идентификатор справочника;
code
- код справочника;
name
- имя справочника;
comment
- комментарий к справочнику;
columns
- список столбцов справочника (для
getColumns = true
);
items
- список значений справочника (для
getItems = true
).
Для каждого столбца справочника (columns
)
передается:
id
- идентификатор столбца;
code
- код столбца;
name
- имя столбца;
comment
- комментарий столбца;
translate
- переводить ли значение столбца,
true/false.
Примечание.
Каждый столбец из
columns
определяется ключом, который соответствует значению кода столбца (полеcode
).
Для каждой записи справочника (items
)
передаются значения кода столбца, а внутри каждого столбца -
непосредственно значения записи:
id
- идентификатор значения;
value
- значение (только в локали С);
translation
- перевод значения согласно
параметру locale
; при отсутствии параметра
используется
язык
системы по умолчанию.
Примечание.
Каждая запись из
items
определяется ключом, который соответствует значению идентификатора значения (полеid
).В свою очередь, внутри записи каждый вложенный массив определяется ключом, который соответствует значению кода столбца (поле
code
).См. подробнее в примере ниже.
Пример возвращаемого массива.
{ "id": "eb77639e-60b8-4a50-8327-0482063e8935", "code": "send_items", "name": "Пункты меню отправки", "comment": "Пункты меню отправки документа/работы", "columns": { "item_number": { "id": "e5d3ce83-25d1-46ae-94f9-c33930fc1565", "code": "item_number", "name": "Порядковый номер", "comment": "Используется для задания порядка пунктов меню отправки", "translate": false }, "item_name": { "id": "03e23318-71ec-4ced-a54c-73affaf43079", "code": "item_name", "name": "Название пункта меню отправки", "comment": "Текст, который будет отображаться в соответствующем пункте меню", "translate": true }, "item_process": { "id": "27f3090b-0a57-4c1f-8343-c56e8d39117d", "code": "item_process", "name": "Действие, которое осуществляет пункт", "comment": "", "translate": false } }, "items": { "b7c8861f-37df-4fe4-9f67-4f1cb243b008": { "item_number": { "id": "b7c8861f-37df-4fe4-9f67-4f1cb243b008", "value": "3", "translation": null }, "item_name": { "id": "b7c8861f-37df-4fe4-9f67-4f1cb243b008", "value": "Перепоручить", "translation": "Перепоручить" }, "item_process": { "id": "b7c8861f-37df-4fe4-9f67-4f1cb243b008", "value": "assignment", "translation": null } }, "80c92a72-988f-422a-92b9-70cd37f15dbc": { "item_number": { "id": "80c92a72-988f-422a-92b9-70cd37f15dbc", "value": "6", "translation": null }, "item_name": { "id": "80c92a72-988f-422a-92b9-70cd37f15dbc", "value": "На утверждение", "translation": "На утверждение" }, "item_process": { "id": "80c92a72-988f-422a-92b9-70cd37f15dbc", "value": "approval", "translation": null } } } }
Альтернативный поток событий. Передан
некорректный параметр code
: справочника с таким
кодом не существует. Сервер возвращает следующий ответ (с
HTTP-кодом 200):
{ "errorCode": "13", "errorMessage": "Справочник с кодом %значение% не найден" }
действие не выполняется.