Довідковий матеріал

Використання REST web-сервісів у "1C:Підприємстві 8"

REST (REpresentation State Transfer) підхід є одним із найпопулярніших підходів, що використовуються для реалізації web-сервісів в Інтернеті. REST web-сервіси є легковаговішими альтернативами SOAP веб-сервісам.

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 підходу є:

  1. Можливість роботи на вже наявній HTTP інфраструктурі — Web-серверах, Web-браузерах та ін. ;
  2. Простота використання та висока сумісність між реалізаціями за рахунок того, що кодування даних зведено до мінімуму. Кодуються лише прикладні дані (тобто те, що потрібно передати), допоміжне маркування даних (наприклад, таке як soap:Envelope) не використовується;
  3. Хороша масштабованість, оскільки REST протоколи не підтримують станів між викликами;
  4. Хороша безпека, яка знову ж таки заснована на HTTP інфраструктурі.

Недоліки REST є продовженням його переваг:

  1. Складно використовувати поза HTTP, оскільки немає ані відповідних стандартів, ані наявних реалізацій;
  2. Складно використовувати в Entreprise рішеннях, де потрібна підтримка досить складного стану (наприклад, наявності сесій та ін.);
  3. Повна залежність від транспорту в таких питаннях, як безпека, маршрутизація повідомлень тощо, що може негативно позначитися на роботі такого сервісу в гетерогенному середовищі.

Протокол, що ґрунтується на принципах 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

Записатися телефоном