DataService. Пакетные запросы
Glossary Item Box
Общие положения
Веб-служба DataService приложения Creatio является RESTful-сервисом, т.е. поддерживает передачу состояния представления (Representational State Transfer, REST). В общем случае REST является очень простым интерфейсом управления информацией без использования каких-то дополнительных внутренних прослоек, т.е. данные не нужно преобразовывать в какой-либо сторонний формат, например, XML. В простом RESTful-сервисе каждая единица информации однозначно определяется глобальным идентификатором, таким как URL. Каждый URL, в свою очередь, имеет строго заданный формат. Однако это не всегда удобно для передачи больших массивов данных.
В DataService данные автоматичеcки могут быть сконфигурированы в различные форматы данных, такие как XML, JSON, HTML, CSV и JSV. Структура данных определяется так называемыми контрактами данных. Полный перечень контрактов данных, используемых службой DataService, изложен в статье "Веб-служба DataService".
Пакетные запросы
Пакетные запросы используются для минимизации обращений к службе DataService, что, в свою очередь, значительно повышает производительность приложения. Пакетный запрос является коллекцией, содержащей произвольный набор запросов к службе DataService. Передача данных в службу DataService осуществляется по HTTP-протоколу при помощи POST-запроса по следующему URL:
// Формат URL для пакетного POST-запроса к DataService. http(s)://[Адрес приложения Creatio]/[Номер конфигурации]/dataservice/[Формат данных]/reply/BatchQuery // Пример URL для пакетного POST-запроса к DataService. http(s)://example.creatio.com/0/dataservice/json/reply/BatchQuery
Непосредственно данные, составляющие пакетный запрос, могут передаваться в различных форматах. Одним из удобных для восприятия форматов является формат JSON. Структура пакетного запроса в формате JSON:
{ "items": [ { "__type": "[Полное квалифицированное имя типа запроса]", //Содержимое единичного запроса. ... }, // Другие единичные запросы. ... ] }
Для формирования содержимого единичных запросов, образующих пакетный запрос, можно воспользоваться контрактами данных InsertQuery, SelectQuery, UpdateQuery и DeleteQuery.