Объект 1С "HTTP-сервисы"

Понятие и назначение HTTP-сервисов в 1С

Механизм HTTP-сервисов 1С позволяет использовать 1С:Предприятие как набор сервисов в сложных распределенных системах, а также позволяет интегрировать «1С:Предприятие» с другими информационными (промышленными) системами.

Система 1С:Предприятие может использовать веб-сервисы, предоставляемые другими поставщиками, с помощью статических WS-ссылок, создаваемых в дереве конфигурации.

Возможность создания собственных произвольных HTTP-сервисов в прикладном решении реализована в дополнение к автоматическому REST интерфейсу прикладного решения.

Подробнее о REST-интерфейсе

REST (Representational state transfer) – это стиль архитектуры программного обеспечения для распределенных систем, таких как World Wide Web, который, как правило, используется для построения веб-служб.

Термин REST был введен в 2000 году Роем Филдингом, одним из авторов HTTP-протокола.

Системы, поддерживающие REST, называются RESTful-системами.

Подробнее на Хабре.

[свернуть]

HTTP-сервисы  позволяют самостоятельно, с помощью встроенного языка, сформировать ответ на HTTP-запрос.

По сравнению с имеющимися в платформе SOAP web-сервисами, HTTP-сервисы имеют ряд преимуществ:

  1. простота программирования клиента таких сервисов;
  2. потенциально меньший объем передаваемых данных;
  3. потенциально меньшая вычислительная нагрузка;
  4. HTTP-сервисы ориентированы на «ресурсы», в то время как SOAP-сервисы ориентированы на «действия».

Первые три фактора особенно важны для приложений, работающих на мобильных устройствах.

Использование HTTP-сервисов в прикладном решении 1С

Вы можете использовать HTTP-сервисы как «легкие» RPC-сервисы, не требующие сложной подготовки XML-пакетов. Методы могут идентифицироваться в URL, а параметры могут передаваться в опциях запроса, или в его теле. В последнем случае такие сервисы уже вплотную приближаются как SOAP, проигрывая ему в четкости спецификации, но выигрывая в гибкости.

RPC-сервис

Удалённый вызов процедур или Вызов удалённых процедур (от англ. Remote Procedure Call, RPC) — класс технологий, позволяющих компьютерным программам вызывать функции или процедуры в другом адресном пространстве (как правило, на удалённых компьютерах).

Обычно реализация RPC-технологии включает в себя два компонента:

  1. сетевой протокол для обмена в режиме клиент-сервер;
  2. язык сериализации объектов (или структур, для необъектных RPC).

[свернуть]

По своему исполнению HTTP-сервисы очень напоминают Web-сервисы, имеющиеся в платформе.

Объекты "HTTP-сервисы" добавляются в ветке конфигурации "Общие - HTTP-сервисы".

Объект 1С "HTTP-сервисы"

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

Методы HTTP-запроса 1С

Шаблон HTTP-сервиса задаёт путь, по которому может происходить обращение к HTTP-сервису. В шаблоне могут использоваться определённые наборы символов, в том числе параметризованные сегменты вида {какой-то текст}.

Для каждого метода шаблона HTTP-сервиса 1С необходимо:

  1. указать обрабатываемый HTTP-метод;
  2. создать процедуру на встроенном языке, которая будет выполнять обработку данных (свойство "Обработчик").

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

При обращении к HTTP-сервису платформа сначала попытается сопоставить URL, по которому произошло обращение, с одним из имеющихся шаблонов и методов. Если сопоставить не удалось, то платформа выдаст код ответ 404 Not Found. Если подходящий метод будет найден, то платформа начнёт выполнение его обработчика, передав в него все имеющиеся в запросе данные в виде объекта встроенного языка HTTPСервисЗапрос.

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

Пример

Отсюда

HTTPСервисЗапрос

[свернуть]

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

Ответ сервиса формируется специальным объектом встроенного языка HTTPСервисОтвет, в тело которого вы можете поместить подготовленные данные.

Публикация HTTP-сервисов выполняется аналогично тому, как публикуются Web-сервисы 1C. Также аналогичным образом для них работает аутентификация, использование разделения данных и отладка.


Довольно подробная статья для начинающих Как настроить обмен 1С с интернет-сервисами

Простейший пример

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

Пример создания HTTP-сервисов на платформе "1С:Предприятие"

Практические примеры поискать здесь.

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.