<< Click to Display Table of Contents >> Интеграция с внешними системами > Запросы к сервису интеграции > Получение сущностей Чтение свойства типа «Бинарные данные в хранилище», «Бинарные данные» и «Картинка» |
При чтении сущности сервис интеграции по умолчанию не передает в ответе значения свойств с типом «Бинарные данные», «Бинарные данные в хранилище» и «Картинка». Это экономит трафик и сокращает время обработки запроса. Из Directum RX во внешнюю систему бинарные данные можно передавать в виде:
•строки или массива байтов – последовательности байтов, закодированных в формате Base64. Так можно передавать небольшие бинарные данные, например текстовые файлы;
•потока данных – последовательности байтов без кодирования. Рекомендуется использовать их для передачи бинарных данных большого размера, например многостраничных PDF-документов.
Чтение свойств в виде строки или массива байтов
Для чтения небольших бинарных данных, например текстовых файлов, используйте GET-запрос c параметром $expand. В ответе сервис интеграции отправит значение свойства – последовательность байтов, закодированных в формат Base64.
Формат URL:
{Протокол https или http}://{имя сервера, на котором установлен сервис интеграции}/{имя сервиса интеграции}/odata/{Интерфейс типа сущности во множественном числе}?$expand={Имя свойства с типом Бинарные данные в хранилище, Бинарные данные или Картинка}
Учитывайте ограничения при написании запроса.
Пример
В Directum RX есть тип справочника «Сотрудник» (Employee). У него есть свойство Фотография с типом Картинка, которое называется PersonalPhoto. Чтобы получить все сущности справочника со свойствами типа Картинка, напишите GET-запрос:
GET /Integration/odata/IEmployees?$expand=PersonalPhoto HTTP/1.1
Host: DirectumRXServer.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Accept: application/json
Чтобы получить сущность справочника с идентификатором 105 и его бинарным свойством, используйте запрос:
GET /Integration/odata/IEmployees(105)?$expand=PersonalPhoto HTTP/1.1
Host: DirectumRXServer.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Accept: application/json
В ответах на эти запросы для свойства типа Картинка в параметре Value будет указана последовательность байтов, закодированных в формат Base64.
|
Чтение свойств в виде потока данных
Если нужно получить бинарные данные без кодирования в формат Base64, используйте потоковую передачу данных. Так в одном запросе можно получить больше байтов, чем с помощью закодированной строки.
Для потоковой передачи данных используйте GET-запрос c параметром $value. В обязательном заголовке Content-Type укажите значение application/octet-stream.
Формат URL:
{Протокол https или http}://{имя сервера, на котором установлен сервис интеграции}/{имя сервиса интеграции}/odata/{Интерфейс типа сущности во множественном числе}(ИД)/{Имя свойства с типом Бинарные данные в хранилище, Бинарные данные или Картинка}/$value
Учитывайте ограничения при написании запроса.
Пример
Чтобы получить значение свойства PersonalPhoto для сущности справочника «Сотрудник» с идентификатором 105 в виде потока данных, используйте GET-запрос:
GET /Integration/odata/IEmployees(105)/PersonalPhoto/$value HTTP/1.1
Host: DirectumRXServer.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/octet-stream
Accept: application/json
В теле ответа будет последовательность байтов без кодировки:
öPNG IHDR , , " gAMA Îð a pHYs .! .!…
© Компания Directum, 2024 |