Класс универсальных методов для интеграции с ИМ по REST

Существует глобальный класс /TRL/XDE_CL_REST (тр. SE24), который содержит в себе универсальные и вспомогательные методы для взаимодействия с ИМ через REST API. Все методы этого класса являются статичными, т.е. для их выполнения не требуется создавать объект класса. Главным методом для работы с REST сервисом для работы с ИМ является метод DO_OPERATION, который является Public методом, все остальные методы закрыты и находятся в секции Private.

Таблица 246 Список методов класса /TRL/XDE_CL_REST

Имя метода

Вид

Видимость

Описание

DO_OPERATION

Static Method

Public

Выполнить операцию

GET_TOKEN

Static Method

Public

Получить токен из БД или REST API

CLEAR_TOKEN

Static Method

Public

Очистить токен

GET_FILE

Static Method

Public

Получить файл

SEND_FILE

Static Method

Public

Отправить файл

SIGN

Static Method

Public

Подписание данных с помощью CryptoApi сервиса

GET_CERT

Static Method

Public

Получить данные сертификата

SAVE_DATABASE

Static Method

Private

Сохранить токен в БД

DO_REQUEST

Static Method

Private

Выполнить http-запрос

GET_URI

Static Method

Private

Собрать адрес URI для запроса

GET_HEADER

Static Method

Private

Собрать заголовок запроса

GET_REST_SV

Static Method

Private

Получить данные из таблицы /TRL/XDE_REST_SV/ST

  • SAVE_DATABASE

    Метод сохраняет в таблицу /TRL/XDE_REST_SV значение токена для определенного типа сервиса.

  • GET_REST_SV

    Метод берет данные из таблиц /TRL/XDE_REST_SV и /TRL/XDE_REST_ST по конкретной операции и конкретному REST сервису.

  • GET_HEADER

    Метод собирает заголовок http-запроса, в который попадает значение токена и content-type = application/json.

  • DO_REQUEST

    Метод выполняет http-запрос. В зависимости от настроек /TRL/XDE_REST_ST-HTTP_TYPE вызывается стандартный модуль HTTP_GET или HTTP_POST.

    Если запрос выполнен неуспешно – вызывается особая ситуация HTTP_ERROR.

    Если запрос выполнен неуспешно (код ответа 401) – вызывается особая ситуация AUTH_ERROR, сообщающая о том, что значение токена не актуально.

    Если запрос выполнен успешно (код ответа 200) – работа метода завершается.

  • GET_URI

    Метод собирает URI для выполнения http-запроса. Для этого сначала выполняется метод GET_CUST, затем выбираются данные из таблицы /TRL/XDE_REST_ST по коду операции. При необходимости тег из /TRL/XDE_REST_ST-METH_NAME заменяется на конкретное значение.

  • DO_OPERATION

    Универсальный метод для выполнения всех операций по взаимодействию с ИМ по REST API. Делится на семь этапов:

    • Получение данных по количеству итераций и времени ожидания между ними с помощью метода GET_ITERATION_DATA.

    • Получение токена с помощью метода GET_TOKEN.

    • Получение адреса запроса (URI) с помощью метода GET_URI.

    • Получение тела запроса с помощью вызова ФМ из /TRL/XDE_REST_ST-CREATE_BODY.

    • Получение заголовка запроса с помощью метода GET_HEADER.

    • Выполнение http-запроса с помощью метода DO_REQUEST (если возникла ошибка аутентификации – этапы 1-5 выполняются повторно).

    • Выполнение обработки тела ответа http-запроса с помощью вызова ФМ из /TRL/XDE_REST_ST-INPUT_FM.

  • GET_TOKEN

    Метод проверяет, считан ли из таблицы /TRL/XDE_REST_SV токен. Если токен уже заполнен - работа метода заканчивается. Если токен не заполнен - выполняется http-запрос для прохождения авторизации и получения нового токена.

  • CLEAR_TOKEN

    Метод чистит поле TOKEN атрибута MS_REST_SV, если параметр IV_SAVE установлен как «X», то вызывается метод SAVE_DATABASE, который очистит значение токена в таблице /TRL/XDE_REST_SV.

  • GET_FILE

    Метод отправляет файл в архив IM, адрес которого настраивается в /TRL/XDE_REST_SV.

  • SEND_FILE

    Метод получает файл из архива IM, адрес которого настраивается в /TRL/XDE_REST_SV.

  • GET_CERT

    Метод возвращает электронную подпись по отпечатку сертификата, получаемую через сервис CryptoApi.

  • SIGN

    Метод возвращает файл электронной подписи по отпечатку сертификата, получаемый через сервис CryptoApi для одного или нескольких файлов.