Skip to content

Пример создания http-сервиса

HTTP-запрос в общем случае имеет вид image.png

Например, http://myserver/mybase/hs/my_servise/v1/ping.

Запрос может содержать произвольное количество параметров, которые указываются после относительного URL и знака ?. Параметры передаются парами «Ключ-значение» и имеют вид «myparam=value». Если необходимо передать несколько параметров, они разделяются между собой знаком & — например: http://myserver/mybase/hs/my_servise/v1/ping?my_param1=10&my_param2=20

Общая схема работы с HTTP: image.png

Создание сервиса

Сначала необходимо опубликовать базу на веб-сервере

Затем в дереве конфигурации по пути Общие — HTTP-сервисы создаем новый сервис MobileAPI для обмена с мобильным приложением. image.png

В свойствах сервиса необходимо указать корневой URL, чтобы явно отличать сервисы. После создания сервиса, необходимо создать шаблоны URL - это то, как будет выглядеть относительный URL. image.png В свойствах шаблона нужно указать шаблон относительного URL, в который можно добавлять параметры — Конструкции, заключенные в фигурных скобках. С текущими настройками шаблон URL будет выглядеть следующим образом http://host/base/hs/mobile_uat/v1/{любой метод} Далее для каждого шаблона необходимо определять методы HTTP. Принято создавать методы на каждый используемый метод HTTP — GET, POST, PUT и т.д., в обработчике которых и будут перехватываться параметры http-запроса image.png Обработчик http-метода функционирует в контексте СЕРВЕРА

Пример обработчика

Функция uatGET(Запрос)
// то, что мы указывали в параметрах шаблона URL
ИмяМетода = Запрос.ПараметрыURL.Получить("ИмяМетода");
Ответ = Неопределено;
// в зависимости от имени метода выбирается обработчик
Если ИмяМетода = "ping" Тогда
Ответ = РезультатПроверкиСоединения(Запрос);
ИначеЕсли ИмяМетода = "my_tasks" Тогда
Ответ = СписокТекущихЗаданийВодителя(Запрос);
ИначеЕсли ИмяМетода = "task_last_file" Тогда
Ответ = ПоследнийПрисоединенныйФайлЗаявки(Запрос);
ИначеЕсли ИмяМетода = "task_all_files" Тогда
Ответ = СписокПрисоединенныхФайловЗаявки(Запрос);
ИначеЕсли ИмяМетода = "file_by_uuid" Тогда
Ответ = ПрисоединенныйФайлПоСсылке(Запрос);
ИначеЕсли ИмяМетода = "status_list" Тогда
Ответ = СписокСтатусовЗаявок(Запрос);
ИначеЕсли ИмяМетода = "driver_uuid_by_personal_num" Тогда
Ответ = УИДВодителяПоТабельномуНомеру(Запрос);
ИначеЕсли ИмяМетода = "all_tasks" Тогда
Ответ = СписокВсехЗаявок(Запрос);
Иначе
Ответ = ОтветНаНеподдерживаемыйМетод(Запрос);
КонецЕсли;
Возврат Ответ; // тут всегда должен быть HTTPСервисОтвет
КонецФункции

Пример обработчика метода ping

Функция РезультатПроверкиСоединения(Запрос)
Ответ = Новый HTTPСервисОтвет(200);
Ответ.УстановитьТелоИзСтроки("Соединение установлено успешно", КодировкаТекста.UTF8);
Возврат Ответ;
КонецФункции

Важно помнить, что тело ответа в общем случае — это строка, но эта строка может быть сформирована в формате HTML, XML, JSON и пр. Файлы и прочие двоичные данные можно передавать как Base64 строку

Таким образом, при вводе в адресной строке браузера адрес http://host/base/hs/mobile_uat/v1/ping, в браузере отобразится сообщение «Соединение установлено успешно»

Отладка сервиса

Для отладки лучше использовать приложение Postman image.png Также желательно установить на сервере отладку по HTTP и настроить автоматическое подключение HTTP-сервисов. (Такой выбор появится только при HTTP отладке) image.png image.png

Настройка http-отладки на сервере

  1. Вызовите редактор реестра Windows: нажмите Win + R и введите команду regedit.

  2. В редакторе реестра найдите и раскройте ветку:

    • Для 64-битного сервера:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\1C:Enterprise 8.3 Server Agent (x86-64)

    • Для 32-битного сервера:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\1C:Enterprise 8.3 Server Agent

  3. Найдите параметр ImagePath, откройте его и в конец строки добавьте пробел и флаг –debug -http.