HTTP-сервис в 1С: создание, публикация и отладка

В платформе версии 8.3.5 появилась возможность создавать HTTP-сервисы. Как и «старые» SOAP web-сервисы, HTTP-сервис позволяет получать/изменять данные, но при этом, как утверждает компания 1С, HTTP-сервисы потенциально позволяют упростить создание клиентских приложений, уменьшить объем передаваемых данных и вычислительную нагрузку, все это особенно для мобильных устройств.

В этой статья я постараюсь рассказать о том, как создавать, отлаживать и использовать HTTP-сервисы в 1С.

Начнем с того, что для создания HTTP-сервиса нам необходим веб-сервер, например Apache 2.2 (начиная с версии 8.3.8 и Apache 2.4 подойдет). Описывать установку веб-сервера думаю нет необходимости.

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

Итак, создаем новый HTTP-сервис:

Новый HTTP-сервис
Новый HTTP-сервис

Корневой URL — важный параметр, входит в адрес по которому сервис будет доступен после публикации.

В соответствующем разделе создаем новый шаблон URL и метод:

Шаблоны URL и методы
Шаблоны URL и методы

У шаблона URL есть единственное свойство — шаблон. Этим свойством можно задать путь по которому будет происходить обращение к HTTP-сервису.  В шаблоне можно использовать параметризованные сегменты, как на рисунке ниже (об их использовании ниже).

Свойства шаблона
Свойства шаблона

У метода есть свойство HTTP-метод, которое можно указать выбрав одно из следующих значений: GET, POST, PUT, DELETE, PATCH, MERGE, CONNECT, OPTIONS, TRACE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK или Любой.

При обращении к HTTP-сервису, платформа пытается сопоставить адрес, по которому произошло обращение с одним из имеющихся шаблонов и методов. Если сопоставить удалось, то будет выполнен обработчик метода, если же сопоставить не удалось, то будет возвращен код ответа 404.

Свойства метода
Свойства метода

Перейдем к примеру обработчика метода, в нем я возвращаю содержимое переменной «Запрос», которая передается в обработчик:

Публикация и проверка HTTP-сервиса

Наш HTTP-сервис готов к публикации, в этом нет ничего сложного (вероятно потребуется запустить конфигуратор от имени администратора):

Публикация HTTP-сервиса
Публикация HTTP-сервиса

После публикации я могу обратиться к сервису вот по такому адресу: http://localhost/HTTPTest/hs/Obmen/test-parametr/Test/GetInfo?param=value, где:

  • localhost — адрес сервера;
  • HTTPTest — имя указанное при публикации;
  • hs — обязательный сегмент пути, дающий понять, что работаем мы именно с HTTP-сервисом;
  • Obmen — корневой URL HTTP-сервиса;
  • test-paramenter/Test — путь к методу внутри сервиса, определяется шаблоном;
  • GetInfo — название метода;
  • ?param=value — необязательный пример передачи методу параметров.
Результат выполнения метода
Результат выполнения метода

Параметры URL, параметры запроса и заголовки представлены в виде фиксированных структур.

Вероятнее всего, при обращение к HTTP-сервису нужно будет авторизоваться (если в базе есть хоть один пользователь), есть несколько способов решения этой проблемы.

Первый — изменить файл default.vrd, который находится в каталоге публикации. В этом файле нужно дополнить строку подключения к базе, например, было:

ib=»File="C:\Base\TEST";»,

стало:

ib=»File="C:\Base\TEST";Usr=Логин;Pwd=Пароль».

В этом случае любые обращения к HTTP-сервису не будут требовать логина и пароля.

Во-вторых, можно указывать логин и пароль при подключении к HTTP-сервису:

В других языках программирования аналогично.

Кроме этого можно использовать windows-авторизацию.

Отладка HTTP-сервисов

Для того чтобы иметь возможность отлаживать HTTP-сервисы нужно, во-первых, опубликовать HTTP-сервис со следующими настройками:

Отладка HTTP-сервисов
Отладка HTTP-сервисов

Во-вторых, в конфигураторе, в меню «Отладка»->»Подключение…» нужно настроить автоматическое подключение:

Настройка автоматического подключения
Настройка автоматического подключения

И, наконец, в-третьих, нужно перезапустить веб-сервер.

Кроме этого для полноценной отладки могут потребоваться сторонние программы, так как браузер всегда старается использовать метод GET. Для тестирования всех остальных HTTP-методов можно использовать бесплатный Fiddler2 (http://www.telerik.com/fiddler).

Fiddler2 Composer
Fiddler2 Composer
Fiddler2 Inspectors
Fiddler2 Inspectors

На этом все, буду рад услышать любые дополнения и замечания.

1 комментарий к “HTTP-сервис в 1С: создание, публикация и отладка

  1. А как в самой 1С увидеть результат обращения к веб сервису? Чтобы в самой 1С выскочило сообщение о том что произошло подключение из вне.. Заранее спасибо

Оставить комментарий