Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: Общая информация
Дальше: Примеры реализации HTTP-сервисов

Разработка HTTP-сервиса

Для создания HTTP-сервисов, которые будет поставлять прикладное решение, есть специальный объект конфигурации HTTP-сервис. Такие объекты добавляются в ветку Общие > HTTP-сервисы.

При создании HTTP-сервиса следует установить свойство Корневой URL. Оно определяет группу ресурсов, объединенных общим смыслом. Например, если необходимо создать несколько ресурсов, которые работают с заказами, то корневой URL в этом случае может выглядеть как order. Тогда начало URL при обращении к такому сервису будет выглядеть следующим образом: http://host/base/hs/order.

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

Например, шаблон может выглядеть следующим образом:

В последнем примере props – это непараметризованный сегмент, который должен быть перенесен в URL дословно. А заключенный в фигурные скобки {PropertyName} – параметризованный сегмент, который фактически описывает переменную с указанным именем, к которой можно получить доступ из встроенного языка.

И затем для созданного шаблона необходимо определить HTTP-методы, которые могут быть использованы при работе с ресурсом, совпадающим с шаблоном. Для этого необходимо создать нужное количество объектов Метод, подчиненных объекту Шаблон URL. Для каждого метода необходимо указать свойство 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СервисЗапрос и должна вернуть объект типа HTTPСервисОтвет.

Входной параметр полностью описывает HTTP-запрос, поступивший в систему. С помощью объекта HTTPСервисЗапрос можно определить:

Также существует возможность получать тело HTTP-запроса в виде двоичных данных или строки (в зависимости от передаваемой информации).

После того как прикладное решение выполнило все действия, которые определены для данного ресурса и HTTP-метода, необходимо сформировать ответ сервиса. Для этого необходимо создать объект типа HTTPСервисОтвет. В зависимости от результата обработки следует указать свойство КодСостояния, которое описывает стандартный код возврата HTTP. Затем, при необходимости, следует сформировать тело ответа HTTP-сервиса. Тело может быть установлено как двоичные данные, как строка (в формате JSON или XML) или с помощью указания имени файла, откуда будет загружено тело ответа.

Назад: Общая информация
Дальше: Примеры реализации HTTP-сервисов