Запросы:
"http://localhost/REST/hs/employees"
"http://localhost/REST/hs/employees/да"
"http://localhost/REST/hs/employees/нет"
Функция СписокGET(Запрос)
// Сформировать ответ, возвращаемый HTTP-сервисом.
Ответ = Новый HTTPСервисОтвет(200);
// Получить из запроса параметр URL *.
Признак = Запрос.ПараметрыURL["*"];
// Сформировать выборку сотрудников.
Если Признак = "" Тогда
// Без отбора.
Выборка = Справочники.Сотрудники.Выбрать();
Иначе
// С отбором по признаку работы.
Работает = ?(ВРег(Прав(Признак,2)) = "ДА", Истина, Ложь);
Выборка = Справочники.Сотрудники.Выбрать(,, Новый Структура("Работает", Работает));
КонецЕсли;
// В цикле обхода выборки записать в JSON список сотрудников.
// Создать объект записи и записать строковое значение в строку JSON.
Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку();
// Записать начало корневого объекта.
Запись.ЗаписатьНачалоОбъекта();
Пока Выборка.Следующий() Цикл
Запись.ЗаписатьИмяСвойства(Выборка.Наименование);
Запись.ЗаписатьНачалоОбъекта();
Запись.ЗаписатьИмяСвойства("Код");
Запись.ЗаписатьЗначение(Выборка.Код);
Запись.ЗаписатьИмяСвойства("Должность");
Запись.ЗаписатьЗначение(Строка(Выборка.Должность));
Запись.ЗаписатьКонецОбъекта();
КонецЦикла;
// Записать конец корневого объекта.
Запись.ЗаписатьКонецОбъекта();
// Записать результат записи в строку JSON.
Результат = Запись.Закрыть();
// Установить тело ответа из строки Результат.
Ответ.УстановитьТелоИзСтроки(Результат);
Ответ.Заголовки.Вставить("Content-type", "application/json");
Возврат Ответ;
КонецФункции
При запросе: "http://localhost/REST/hs/employees" Ответ:
{
″Иванов Сергей Иванович″: {
″Код″: ″000000001″,
″Должность″: ″Администратор″
},
″Петров Игорь Владимирович″: {
″Код″: ″E-0003″,
″Должность″: ″Должность - Директор″
},
″Аксакова Светлана Ивановна″: {
″Код″: ″000000002″,
″Должность″: ″Кассир″
}
}
При запросе: "http://localhost/REST/hs/employees/ДА"
{
″Иванов Сергей Иванович″: {
″Код″: ″000000001″,
″Должность″: ″Администратор″
},
″Петров Игорь Владимирович″: {
″Код″: ″E-0003″,
″Должность″: ″Должность - Директор″
}
}
При запросе: "http://localhost/REST/hs/employees/нет"
{
″Аксакова Светлана Ивановна″: {
″Код″: ″000000002″,
″Должность″: ″Кассир″
}
}