<< Click to Display Table of Contents >> Интеграция с внешними системами Запросы к сервису интеграции |
Чтобы настроить обмен данными между внешней системой и Directum RX, используйте HTTP-запросы. С их помощью можно:
•обращаться к функциям модулей, которые в среде разработки отмечены атрибутами [Public(WebApiRequestType = RequestType.Get)] и [Public(WebApiRequestType = RequestType.Post)];
•получать, создавать, изменять и удалять сущности, если в редакторе типа сущности установлен флажок Использовать в сервисе интеграции. По умолчанию флажок установлен для всех типов сущностей из базового решения.
Чтобы в одном запросе выполнить несколько операций, разработчик может написать пакетный запрос. Например, чтобы массово обновить записи при ежедневной синхронизации структуры компании. Когда сервис интеграции обрабатывает такой запрос, подзапросы выполняются по очереди. В результате сервис формирует единый ответ, который отправляется во внешнюю систему.
Формат ссылки для подключения к сервису интеграции:
{Протокол https или http}://<адрес сайта>:<порт>/Integration
Структура HTTP-запроса:
•строка запроса (обязательный элемент);
•заголовки (обязательный элемент);
•тело запроса (опциональный элемент).
Формат строки запроса: <Метод> <URL запроса> HTTP/1.1 Метод. Для обращения к функциям используются методы POST, GET и HEAD. Для обращения к типам сущностей: POST, GET, HEAD, PATCH и DELETE. Другие методы для обмена с Directum RX не используются. Если нужно проверить, существует ли функция или тип сущности, используйте HEAD-запрос. Он не возвращает данные, что позволяет уменьшить нагрузку на сервер. Пример запроса: HEAD /Integration/odata/IRoles HTTP/1.1 В ответе сервис интеграции возвращает код: 200 – функция или тип сущности существует, и 404 – не существует. URL запроса. Адрес до сервиса интеграции, запрашиваемой функции или репозитория типа сущности. Например, чтобы узнать, к каким функциям и репозиториям типов сущностей в Directum RX можно обратиться через сервис интеграции, используйте адрес в формате: {Протокол https или http}://{имя сервера, на котором установлен сервис интеграции}/{имя сервиса интеграции}/odata/$metadata
https://DirectumRXServer.com/Integration/odata/$metadata Запрос вернет метаданные OData. Примечание. Если система обновляется с версии ниже 4.2, имя сервиса интеграции будет DrxIntegration. HTTP/1.1. Версия HTTP. |
Для обмена с Directum RX в каждом HTTP-запросе обязательно укажите заголовки: •Host – имя домена, на котором установлен сервис интеграции; •Authorization, Username, Password – данные для аутентификации в сервисе интеграции. Набор полей зависит от выбранного способа; •Content-Type – тип содержимого тела запроса к сервису интеграции. Возможные значения: •multipart/mixed – для пакетного запроса; •application/octet-stream – для потоковой передачи данных. Таким образом можно читать и изменять свойства с типом Бинарные данные, Бинарные данные в хранилище и Картинка; •application/json – для остальных запросов; •Accept – тип содержимого application/json для ответа, который получит внешняя система от Directum RX. Пример обязательных заголовков в запросе: Host: DirectumRXServer.com Дополнительно можно указать заголовки: •Culture – язык, на котором возвращаются строки локализации Directum RX. Заголовок не влияет на разделители в числах и форматы дат. Если язык не указан или указан язык, который не поддерживается сервером, по умолчанию используются настройки сервера. Возможные значения: ru-RU, en-US и en-GB; •Return – признак, от которого зависит, будут ли в ответе от сервиса интеграции отображаться изменения, внесенные в Directum RX. Заголовок имеет смысл только в запросах при создании и изменении сущностей. Возможные значения: representation и minimal; •Accept-Encoding – алгоритм сжатия содержимого HTTP-ответов, который поддерживается клиентом, отправляющим запрос. Возможные значения: br – Brotli, gzip – Gzip. Если в заголовке указать оба алгоритма, то по умолчанию сжатие выполнится при помощи Brotli. Подробнее см. в документации Microsoft статью «Сжатие ответов в ASP.NET Core». Пример дополнительных заголовков в запросе: Culture: ru-RU |
Тело запроса – элемент HTTP-запроса. Используется в: •POST-запросах к функциям, чтобы передавать параметры. Необязательный элемент; •POST-запросах при создании сущностей. Обязательный элемент; •PATCH-запросах при изменении сущностей. Обязательный элемент. |
© Компания Directum, 2024 |