1 Требования к порядку взаимодействия и форматам обмена

1.1 Общие требования

СМО взаимодействует с ФЕРЗЛ посредством SOAP-сервисов, использующих XML.

Взаимодействие осуществляется с использованием синхронных и асинхронных SOAP-методов.

Процесс синхронного взаимодействия ФЕРЗЛ с внешними системами состоит из следующих этапов:

Операции, выполняемые асинхронно, выделены в отдельный сервис, где каждая операция представлена двумя методами:

Системные результаты выполнения метода возвращаются как код ответа.

В случае, если полученные входные данные не проходят ФЛК, возвращаются коды результата и сообщения об ошибках, препятствующих выполнению операции.

При получении ошибки, данные должны быть откорректированы, и метод должен быть вызван повторно.

Каждому новому отправляемому запросу должен присваиваться новый внешний идентификатор, уникальный в рамках конкретной внешней информационной системы. Для передачи больших объёмов данных используется технология MTOM.

Таблица — Коды и сообщения об ошибках

Код статуса ошибки

Значение

Возможные причины возникновения ошибки

  1.  

400

Ошибка в формате запроса

Формируется вне прикладного кода.

  1.  

401

Ошибка аутентификации

Неправильный пароль, истёкший токен доступа и т.п.

  1.  

403

Ошибка доступа к ресурсу

Попытка вызвать запрос, на который у текущей сессии нет прав.

  1.  

409

Ошибка бизнес-логики

Введены противоречивые/некорректные параметры.

  1.  

422

Необрабатываемый контент

Ключи для организации не найдены,

Переданное значение не является ОИП,

Версия справочника ключей не найдена

  1.  

500

Системная ошибка

Ошибка инфраструктуры.

  1.  

200

ОК


 

1.2 Схема взаимодействия

1.2.1 Синхронные методы

image.png

1.2.2 Асинхронные методы

image.png

1.3 Аутентификация и авторизация

1.3.1 Подключение с использованием токена

Пример токена:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJhZG1pbiIsInNlc3Npb24taWQiOiI5NGRkMDUwNy1hYWM0LTRlMmYtYmQ3OS1lNWQzMjQ2MjU2NGQifQ.QuzmHFYA4uRkLI1MKKT99EZN8A62-39-XnBJVrHoZ3U

Для передачи токена в запрос необходимо в http запрос передать заголовок "X-Auth-Token" с содержанием токена.

Пример запроса:

curl -H "X-Auth-Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJhZG1pbiIsInNlc3Npb24taWQiOiI5NGRkMDUwNy1hYWM0LTRlMmYtYmQ3OS1lNWQzMjQ2MjU2NGQifQ.QuzmHFYA4uRkLI1MKKT99EZN8A62-39-XnBJVrHoZ3U" http://hostname/api/some

 

1.4 Версионирование в ФЕРЗЛ

1.4.1 Цели

Версионирование API предназначено для обеспечения своевременного обновления решения у потребителей:

1.4.2 Версии API

Каждая версия отличается своим набором уникальных атрибутов:

Общая формула формирования ссылок на версии:

%хост_стенда%/api/smo/integration/ws/%номер_версии%/%тип_атрибута%/%название_сервиса%

где внутри %% указаны значения, которые должны быть изменены для получения рабочих ссылок

Версия 24.2.3 СМО
Версия 24.2.5 СМО
Версия 24.2.6 СМО

1.4.3 Версии элементов data (структура подписываемых документов)

В версиях API, начиная с 24.1.4, структура <element name="data" type="base64Binary"/> версионируется по конкретным типам документов (в рамках вложения doc_service_xsd), отдельно от версионирования API.

Поддерживается наличие не более трёх версий одной схемы элементов data.

Версия doc_service_for_smo_adapter_24.1.1
Версия doc_service_for_smo_adapter_24.1.2
Версия doc_service_for_smo_adapter_24.1.4
Версия doc_service_for_smo_adapter_24.1.5
Версия doc_service_for_smo_adapter_24.1.6
Версия doc_service_for_smo_adapter_24.2.5