Возможности интеграции с bpm'online по протоколу OData
Glossary Item Box
Общая информация
Протокол Open Data (OData) — это открытый веб–протокол для запроса и обновления данных, базирующийся на архитектурном подходе REST с применением стандартов Atom/XML и JSON.
Доступ к данным и объектам bpm'online по протоколу OData может получить любое стороннее приложение, которое поддерживает обмен сообщениями HTTP и может обрабатывать данные XML или JSON. При этом данные доступны в виде ресурсов, адресуемых через URI.
Доступ к данным и их изменение осуществляется с помощью стандартных HTTP–команд GET, PUT/MERGE, POST и DELETE.
ВАЖНО Использование HTTP–методов PUT и DELETE приведет к ошибке "405 Method not allowed", если не отключить HTTP расширение WebDAV в файле Web.Config настройки приложения. |
Работа по протоколу OData имеет ряд особенностей, которые обусловлены спецификой REST–подхода:
- Сервер приложений не хранит состояния сессии. Вся информация, необходимая для обработки запроса, содержится в самом запросе.
- Объекты OData обладают свойством идемпотентности. То есть повторное действие над объектом не изменяет его.
- При получении значения объекта GET–запросом не должно происходить изменение данного или любого другого объекта.
В настоящее время разработано большое количество клиентских библиотек по работе с OData для популярных прикладных и мобильных платформ, в том числе для:
- .NET
- Silverlight
- JavaScript/HTML5
- Java
- PHP
- Ruby
- WP7
- Android
- iOS
Все клиентские библиотеки по работе с OData доступны для загрузки по адресу http://www.odata.org/libraries.
Реализация протокола OData в bpm'online
Приложение bpm'online поддерживает следующие операции с объектами и их коллекциями по протоколу OData:
Группа операций | Операции |
---|---|
Операции с объектами |
|
Функции работы со строками |
|
Функции работы с датой и временем |
|
К СВЕДЕНИЮ Необходимо учитывать, что в bpm'online реализована принудительная постраничность при возврате результирующих коллекций объектов. Так, по умолчанию запрос возвращает первые 40 объектов. Для изменения реализации постраничности по умолчанию можно использовать стандартные конструкции запросов OData: $top, $skip, $orderby. |
Примеры построения запросов для доступа к объектам bpm'online по протоколу OData приведены ниже.
Работа с объектами bpm'online по протоколу OData
Сервис OData для доступа к объектам bpm'online
Доступ к сущностям bpm'online по протоколу OData предоставляет веб–сервис EntityDataService.svc.
Адрес сервиса EntityDataService.svc:
http[s]://<имя_адрес_приложения_bpm'online>/0/ServiceModel/EntityDataService.svc
Пример
https://myserver.com/BpmonlineWebApp/0/ServiceModel/EntityDataService.svc
Модель данных сервиса EntityDataService.svc описывается в его метаданных, которые можно получить, используя стандартную конструкцию синтаксиса OData — $metadata.
Пример
http://myserver.com/BpmonlineWebApp/0/ServiceModel/EntityDataService.svc$metadata
Аутентификация запросов
Все запросы к bpm'online должны быть аутентифицированы.
Поддерживаемые bpm'online способы аутентификации описаны в статье Аутентификация внешних запросов к веб-сервисам bpm'online.
Примеры реализации доступа к объектам bpm'online по протоколу OData
- Работа с объектами bpm'online по протоколу OData с использованием Http-запросов
- Работа с объектами bpm'online по протоколу OData через WCF-клиент