HTTP-сервисы

С помощью HTTP-сервиса Пресейл::СделкиHttpСервис можно получить данные сделок по HTTP подробнее(). Для этого определено два шаблона URL и обработчики GET-запросов, соответствующих этим шаблонам.

Совет: Чтобы открыть этот файл нажмите Открыть в текстовом редакторе в контекстном меню HTTP-сервиса Пресейл::СделкиHttpСервис.

С помощью запроса по первому адресу можно получить данные всех сделок с отбором по стадии сделки. Значение отбора по стадии передается в параметрах URL. Тело ответа записывается в поток записи по мере получения объектов из базы данных.

// Метод будет вызван для GET-запроса вида 
// {Адрес приложения}/api/opportunities?Стадия={Стадия1}&Стадия={Стадия2}
метод ПолучитьСделки(Запрос: HttpСервисЗапрос)
    знч Стадии = Запрос.Параметры.ПолучитьВсе("Стадия")
    
    Запрос.Ответ.Заголовки.Установить("Content-Type", "application/json")
    
    исп ПотокЗаписиТела = Запрос.Ответ.ОткрытьПотокЗаписиТела()
    ЗаписатьДанныеСделокВПоток(ПотокЗаписиТела, Стадии)
;

С помощью запроса по второму адресу можно получить данные конкретной сделки. Код сделки передается как часть пути к ресурсу. Тело ответа устанавливается из строки.

Для сериализации данных сделок используется тип СериализацияJson.

// Метод будет вызван для GET-запроса вида {Адрес приложения}/api/opportunities/{КодСделки}
метод ПолучитьСделку(Запрос: HttpСервисЗапрос)
    знч КодСделки = Запрос.Параметры.ПолучитьПервый("opportunity")
    
    если КодСделки != Неопределено
        знч ДанныеСделки = ПолучитьДанныеСделки(КодСделки)
        если ДанныеСделки != Неопределено
            знч ТелоОтвета = СериализацияJson.ЗаписатьОбъект(ДанныеСделки)
            
            Запрос.Ответ.Заголовки.Установить("Content-Type", "application/json")
            Запрос.Ответ.УстановитьТело(ТелоОтвета)
            возврат
        ;
    ;
    
    Запрос.Ответ.УстановитьКодСтатуса(404)
    Запрос.Ответ.УстановитьТело("Сделка не найдена")
;
Совет: Чтобы открыть этот файл нажмите на модуль Пресейл::СделкиHttpСервис.