Понятие и назначение HTTP-сервисов в 1С
Механизм HTTP-сервисов 1С позволяет использовать 1С:Предприятие как набор сервисов в сложных распределенных системах, а также позволяет интегрировать «1С:Предприятие» с другими информационными (промышленными) системами.
Система 1С:Предприятие может использовать веб-сервисы, предоставляемые другими поставщиками, с помощью статических WS-ссылок, создаваемых в дереве конфигурации.
Возможность создания собственных произвольных HTTP-сервисов в прикладном решении реализована в дополнение к автоматическому REST интерфейсу прикладного решения.
REST (Representational state transfer) – это стиль архитектуры программного обеспечения для распределенных систем, таких как World Wide Web, который, как правило, используется для построения веб-служб.
Термин REST был введен в 2000 году Роем Филдингом, одним из авторов HTTP-протокола.
Системы, поддерживающие REST, называются RESTful-системами.
HTTP-сервисы позволяют самостоятельно, с помощью встроенного языка, сформировать ответ на HTTP-запрос.
По сравнению с имеющимися в платформе SOAP web-сервисами, HTTP-сервисы имеют ряд преимуществ:
- простота программирования клиента таких сервисов;
- потенциально меньший объем передаваемых данных;
- потенциально меньшая вычислительная нагрузка;
- HTTP-сервисы ориентированы на «ресурсы», в то время как SOAP-сервисы ориентированы на «действия».
Первые три фактора особенно важны для приложений, работающих на мобильных устройствах.
Использование HTTP-сервисов в прикладном решении 1С
Вы можете использовать HTTP-сервисы как «легкие» RPC-сервисы, не требующие сложной подготовки XML-пакетов. Методы могут идентифицироваться в URL, а параметры могут передаваться в опциях запроса, или в его теле. В последнем случае такие сервисы уже вплотную приближаются как SOAP, проигрывая ему в четкости спецификации, но выигрывая в гибкости.
Удалённый вызов процедур или Вызов удалённых процедур (от англ. Remote Procedure Call, RPC) — класс технологий, позволяющих компьютерным программам вызывать функции или процедуры в другом адресном пространстве (как правило, на удалённых компьютерах).
Обычно реализация RPC-технологии включает в себя два компонента:
- сетевой протокол для обмена в режиме клиент-сервер;
- язык сериализации объектов (или структур, для необъектных RPC).
По своему исполнению HTTP-сервисы очень напоминают Web-сервисы, имеющиеся в платформе.
Объекты "HTTP-сервисы" добавляются в ветке конфигурации "Общие - HTTP-сервисы".
Каждый HTTP-сервис может содержать в себе один или несколько шаблонов URL, и для каждого шаблона можно создать один или несколько методов, выполняющих обработку данных:
Шаблон HTTP-сервиса задаёт путь, по которому может происходить обращение к HTTP-сервису. В шаблоне могут использоваться определённые наборы символов, в том числе параметризованные сегменты вида {какой-то текст}.
Для каждого метода шаблона HTTP-сервиса 1С необходимо:
- указать обрабатываемый HTTP-метод;
- создать процедуру на встроенном языке, которая будет выполнять обработку данных (свойство "Обработчик").
В качестве 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-запроса данные можно вернуть в разных форматах, (например, преобразовать в XML, как на картинке выше, или просто в текстовую строку с разделителями).
Ответ сервиса формируется специальным объектом встроенного языка HTTPСервисОтвет, в тело которого вы можете поместить подготовленные данные.
Публикация HTTP-сервисов выполняется аналогично тому, как публикуются Web-сервисы 1C. Также аналогичным образом для них работает аутентификация, использование разделения данных и отладка.
Довольно подробная статья для начинающих Как настроить обмен 1С с интернет-сервисами
Простейший пример
Публикация и проверка HTTP-сервиса
Пример создания HTTP-сервисов на платформе "1С:Предприятие"
Практические примеры поискать здесь.