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

Використання REST web-сервісів у "1С:Підприємстві 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 рішення, що застосовуються як в інтернеті, так і в локальних мережах підприємств.

Дистрибутив демонстраційної конфігурації міститься в каталозі 1CITS\EXE\RSSClient

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