Формулировка проблемы: необходимо по полям(код показателя, название и т.д.) получить информацию о должности/подразделении
Решение: необходимо реализовать методы API, которые выполняют поиск по полям (код показателя, название и т.д.) сущностей должность/подразделение
URL метода: /rest/api/departments/search
.
Тип запроса: GET
.
Метод принимает следующие входные параметры:
pointer_code
- код показателя (необяз.),
может быть передано несколько значений;
name
- название подразделения (необяз.),
может быть передано несколько значений;
recordsCount
- количество результатов,
которые необходимо вернуть (по умолчанию 30). Максимальное
значение параметра 100;
startRecord
- номер записи результатов,
начиная с которой будут возвращены записи (по умолчанию 0);
searchTypePC
- тип сравнения для параметра
pointer_code
(по умолчанию exact). Может
принимать следующие значения:
exact
- точное совпадение поискового запроса и значения поля;
partial
- вхождение поискового запроса
в значение поля.
searchTypeN
- тип сравнения для параметра
name
(по умолчанию partial). Может
принимать следующие значения:
exact
- точное совпадение поискового запроса и значения поля;
partial
- вхождение поискового запроса
в значение поля.
locale
(не обяз.) - код локали (при
отсутствии параметра используется
язык
системы по умолчанию). Данный параметр учитывается при
поиске по названию подразделения.
В случае успешного выполнения метод возвращает массив строк, являющихся идентификаторами подразделений.
Пример запроса:
/rest/api/departments/search?pointer_code=dep1&pointer_code=dep3
Пример возвращаемого ответа:
[ "c4ddd6b1-ade2-4ee2-ace5-ac6a81d02a", "vg71a4c6-888a-4dd4-86de-4a394f5749" ]
При указании одновременно разных параметров результат запроса будет связан логическим И. Пример запроса: /rest/api/departments/search?pointer_code=dep5&name=Департамент5
А при указании одновременно одинаковых параметров, результат будет производится по логическому ИЛИ. Пример запроса: /rest/api/departments/search?pointer_code=code1&pointer_code=code2
В случае если по переданным входным параметрам ничего не найдено, сервер возвращает пустой массив.
Альтернативные потоки событий:
Альтернативный поток №1. Не передан ни один из параметров поиска pointer_code
,
name
. Сервер возвращает ошибку HTTP 400 с сообщением:
{ "errorCode": 13, "errorMessage": "Не передан ни один из параметров поиска: pointer_code, name" }
поиск не выполняется.
Альтернативный поток №2. Передан некорректный параметр
searchTypePC
. Сервер возвращает ошибку HTTP 400
с сообщением:
{ "errorCode":13, "errorMessage":"Передан некорректный параметр searchTypePC" }
поиск не выполняется.
Альтернативный поток №3. Передан некорректный параметр
searchTypeN
. Сервер возвращает ошибку HTTP 400
с сообщением:
{ "errorCode":13, "errorMessage":"Передан некорректный параметр searchTypeN" }
поиск не выполняется.
Альтернативный поток №4. Значение переданного параметра
recordsCount
превышает максимальное значение.
Сервер возвращает ошибку HTTP 400 с сообщением:
{ "errorCode":13, "errorMessage":"Значение параметра recordsCount превышает максимальное значение равное 100. Для просмотра дальнейших результатов воспользуйтесь параметром `startRecord`" }
поиск не выполняется.
URL метода: /rest/api/positions/search
.
Тип запроса: GET
.
Метод принимает следующие входные параметры:
name
- название должности (необяз.), может
быть передано несколько значений;
code
- шифр должности (необяз.), может быть
передано несколько значений;
pointer_code
- код показателя (необяз.),
может быть передано несколько значений;
recordsCount
- количество результатов,
которые необходимо вернуть (по умолчанию 30). Максимальное
значение параметра 100;
startRecord
- номер записи результатов,
начиная с которой будут возвращены записи (по умолчанию 0);
searchTypeN
- тип сравнения для параметра
name
(по умолчанию partial). Может
принимать следующие значения:
exact
- точное совпадение поискового запроса и значения поля;
partial
- вхождение поискового запроса
в значение поля.
searchTypeC
- тип сравнения для параметра
code
(по умолчанию partial). Может
принимать следующие значения:
exact
- точное совпадение поискового запроса и значения поля;
partial
- вхождение поискового запроса
в значение поля.
searchTypePC
- тип сравнения для параметра
pointer_code
(по умолчанию exact). Может
принимать следующие значения:
exact
- точное совпадение поискового запроса и значения поля;
partial
- вхождение поискового запроса
в значение поля.
locale
- локаль пользователя, ru/en/kz (по
умолчанию ru). Данный параметр учитывается при поиске по
названию должности.
В случае успешного выполнения метод возвращает массив строк, являющихся идентификаторами должностей.
Пример запроса:
/rest/api/positions/search?name=Администратор&name=Менеджер
Пример возвращаемого ответа:
[ "rgg66d1-ad54-5462-aef5-aggrr55fd02a", "vgikwj4c6-88gh-ef44-3ffe-oepjfee5d6" ]
При указании одновременно разных параметров результат запроса будет связан логическим И. Пример запроса: /rest/api/positions/search?pointer_code=dep5&code=TRJ163
А при указании одновременно одинаковых параметров, результат будет производится по логическому ИЛИ. Пример запроса: /rest/api/positions/search?name=Админ&name=Ассистент
В случае если по переданным входным параметрам ничего не найдено, сервер возвращает пустой массив.
Альтернативные потоки событий:
Альтернативный поток №1. Не передан ни один из параметров поиска
name
, code
,
pointer_code
. Сервер возвращает ошибку HTTP 400
с сообщением:
{ "errorCode": 13, "errorMessage": "Не передан ни один из параметров поиска: name, code, pointer_code" }
поиск не выполняется.
Альтернативный поток №2. Передан некорректный параметр
searchTypeN
. Сервер возвращает ошибку HTTP 400
с сообщением:
{ "errorCode":13, "errorMessage":"Передан некорректный параметр searchTypeN" }
поиск не выполняется.
Альтернативный поток №3. Передан некорректный параметр
searchTypeC
. Сервер возвращает ошибку HTTP 400
с сообщением:
{ "errorCode":13, "errorMessage":"Передан некорректный параметр searchTypeC" }
поиск не выполняется.
Альтернативный поток №4. Передан некорректный параметр
searchTypePC
. Сервер возвращает ошибку HTTP 400
с сообщением:
{ "errorCode":13, "errorMessage":"Передан некорректный параметр searchTypePC" }
поиск не выполняется.
Альтернативный поток №5. Значение переданного параметра
recordsCount
превышает максимальное значение.
Сервер возвращает ошибку HTTP 400 с сообщением:
{ "errorCode":13, "errorMessage":"Значение параметра recordsCount превышает максимальное значение равное 50. Для просмотра дальнейших результатов воспользуйтесь параметром startRecord" }
поиск не выполняется.