1С:Предприятие 8.2 /
Разработчикам /
Платформа, механизмы и технологии
Использование REST web-сервисов в "1C:Предприятии 8"
REST (REpresentation State Transfer) подход является одним из наиболее популярных подходов, использующихся для реализации web-сервисов в Интернете. REST web-сервисы являются более легковесными альтернативами SOAP веб-сервисам.
REST с технической точки зрения не является ни технологией, ни стандартом. Это всего-лишь подход, если можно так сказать, набор принципов, которые помогают реализовать "правильный" web-сервис. Под "правильным" здесь понимается масштабируемый, безопасный, надежный, легкий в использовании и т.д.
REST определяет следующие принципы построения web-сервисов:
- Функциональность приложения делится на набор ресурсов. Каждый ресурс может выполнять определенное действие (REST ресурс является аналогом SOAP операции). Например, ресурс получения новостей выдает список заголовков текущих новостей;
- Каждый ресурс имеет уникальный идентификатор (URL), по которому к нему можно обратиться как из программного кода, так и из Web-браузера;
- Все ресурсы используют унифицированный интерфейс для передачи данных между клиентом и ресурсом. Интерфейс имеет ограниченный набор операций и типов данных для передачи. Как правило, в качестве транспорта используется инфраструктура HTTP, а набор операций, которые можно выполнить над ресурсом, определяется HTTP стандартом. Наиболее используемыми операциями могут быть: HTTP GET - получение данных от ресурса и HTTP POST отправка данных в ресурс. Также могут использоваться HTTP PUT, HTTP DELETE и т.д.;
- REST протокол взаимодействия (RESTful) должен быть клиент-серверным и не иметь состояния.
Преимуществами REST подхода являются:
- Возможность работы на уже существующей HTTP инфраструктуре - Web-серверах, Web-браузерах и др. ;
- Простота использования и высокая совместимость между реализациями, за счет того, что кодирование данных сведено к минимуму. Кодируются только прикладные данные (т.е. то, что нужно передать), вспомогательная маркировка данных (например, такая как soap:Envelope) не используется;
- Хорошая масштабируемость, т.к. REST протоколы не поддерживают состояния между вызовами;
- Хорошая безопасность, которая опять таки основана на HTTP инфраструктуре.
Недостатки REST'а являются продолжением его достоинств:
- Сложно использовать вне HTTP, т.к. нет ни соответствующих стандартов, ни существующих реализаций;
- Сложно использовать в Entreprise решениях, где требуется поддержка достаточно сложного состояния (например, наличия сессий и др.);
- Полная зависимость от транспорта в таких вопросах как безопасность, маршрутизация сообщений и пр., что может негативно сказаться на работе такого сервиса в гетерогенной среде.
Протокол, который основывается на принципах REST, является RESTful протоколом. Два наиболее популярных типа RESTful протоколов это JSON (JavaScript Object Notation) и POX (Plain Old XML). JSON использует для кодирования данных JavaScript и в основном применяется в Ajax (Asynchronous JavaScript and XML) клиентах для обмена данными с сервером. Поскольку Ajax клиенты работают в браузере, который понимает JavaScript, то использование JavaScript позволяет сэкономить как на объеме передаваемых данных, так и на времени разбора данных. Однако использование JSON в других клиентах проблематично, т.к. клиенты, как правило, не поддерживают JavaScript.
POX использует для кодирования данных XML и поэтому может использоваться практически везде. В прилагаемой конфигурации показано как в клиенте 1С:Предприятия можно использовать такой веб-сервис.
В демонстрационной конфигурации реализован простейший агрегатор новостей, который получает заголовки новостей от заданного новостного сервиса и показывает их в списке. Для обмена данными используется стандарт RSS (Really Simple Syndication), являющийся разновидностью POX протокола.
Демонстрационная конфигурация иллюстрирует, насколько просто можно использовать REST web-сервисы. Для этого нужно:
Создать HTTPСоединение
Соединение = Новый HTTPСоединение(Сервер); ИмяФайла = ПолучитьИмяВременногоФайла(".rss"); Соединение.Получить(Ресурс, ИмяФайла);
Выполнить разбор полученных XML данных и добавить их в список заголовков новостей:
ПараметрыЧтенияXML = Новый ПараметрыЧтенияXML(,,,, true, true, true, true, true); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(ИмяФайла, ПараметрыЧтенияXML); ЧтениеXML.Прочитать(); Если ЧтениеXML.Имя = "rss" Тогда Элементы.Очистить(); РазборRSS(ЧтениеXML); Иначе Сообщить("Ошибка разбора RSS."); КонецЕсли; ЧтениеXML.Закрыть();
Чтобы ознакомиться с результатом, в приложенной демонстрационной конфигурации запустите обработку RSSАгрегатор и в открывшейся форме нажмите кнопкуВыполнить.
Стоит упомянуть, что на данный момент 1С:Предприятие может выступать только в качестве клиента REST web-сервисов.
Таким образом, REST не может являться полноценной заменой SOAP web-сервисов, а скорее дополняет их. Основной областью применения REST веб-сервисов являются легковесные web-сервисы с достаточно простой бизнес логикой, используемые в Глобальной Сети, тогда как удел SOAP web-сервисов - более тяжеловесные Enterprise решения, применяемые как в интернете, так и в локальных сетях предприятий.
Дистрибутив демонстрационной конфигурации находится в каталоге 1C\ITS\EXE\RSSClient
Другие материалы по теме:
ошибка разбора rss., клиенты, добавить..., зависимость, (не используется), подход, функциональность, сервер, интерфейс, конфигуратор, приложения, клиент, выполнить, конфигурация, список, обмен, сервис, использование, например, предприятие, пример, конфигурации
Материалы из раздела: 1С:Предприятие 8.2 / Разработчикам / Платформа, механизмы и технологии
Другие материалы по теме:
Использование REST web-сервисов в "1C:Предприятии 8"
Общесистемные механизмы и принципы
Методика перевода работы пользователей на другую информационную базу
Нас находят: web-додатки в 1с, rest 1c, 1C, https://stimul kiev ua/materialy htm?a=ispolzovanie-rest-web-servisov-v-1cpredpriyatii-8, restful 1с и веб приложение, rest интерфейс 1с обмен картинками, 1с пример разбора json, как обратиться к веб-сервису rest из 1С, авторизация REST 1C, rest сервисы 1с
Мы на Facebook