В платформе 1С:Предприятие поддерживаются два основных подхода к взаимодействию с внешними системами через интернет: Web-сервисы и HTTP-сервисы. Несмотря на то, что Web-сервисы являются, фактически, подмножеством HTTP-сервисов, их принято выделять в отдельную категорию благодаря особенностям применения и технологии.
Web-сервисы: описание
В 1С Web-сервисы для передачи данных используют протокол SOAP и формат XML. В среднем, они сложнее в реализации, чем HTTP-сервисы, а также используют больше данных, поскольку являются удаленным вызовом процедур.
Пример:
WebServiceClient = Новый WebСервис("http://example.com/service?wsdl"); Результат = WebServiceClient.Method(Параметры);
HTTP-сервисы: описание
HTTP-сервисы гораздо более гибкие и могут использовать разные форматы передачи данных - JSON, XML и простой текст. Является вызовом ресурсов.
Пример:
HTTPClient = Новый HTTPЗапрос("http://example.com/api/resource"); HTTPClient.УстановитьТелоЗапроса("{\"key\": \"value\"}"); Ответ = HTTPClient.Получить();
Таблица отличий
Параметр | Web-сервисы | HTTP-сервисы |
Протокол | SOAP | HTTP/REST |
Формат данных | XML | JSON, XML, текст |
Типизация | Строгая | Гибкая |
Создание своего Web-сервиса
Чтобы создать свой Web-сервис, нужно:
- Создать в конфигураторе общий модуль.
- Настроить публикацию через свойства объекта.
- Реализовать необходимые методы и указать параметры использования внешними системами.
Создание своего HTTP-сервиса
Чтобы создать свой HTTP-сервис, нужно:
- Создать в конфигураторе обработку или общий модуль для обработки HTTP-запросов.
- Настроить публикацию через свойства обработки.
- Реализовать методы обработки входящих запросов в зависимости от типа запроса.
Если СтрокаЗапроса = "/api/resource"
Тогда
Ответ.УстановитьТело("{\"message\": \"Hello, world!\"}"); Ответ.УстановитьКодСостояния(200);
Иначе
Ответ.УстановитьКодСостояния(404);
КонецЕсли;
Web или HTTP-сервисы
Web или HTTP-сервисы выбирают, основываясь на стоящих перед исполнителями задачах:
- Если требуется строгая структура и поддержка стандартов, выбор обычно делается в пользу Web-сервисов.
- Если нужна гибкая интеграция с веб-приложениями и API, больше подходят HTTP-сервисы.