http сервис 1с get
Запросы:
"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″,
″Должность″: ″Кассир″
}
}