Информационно-интеграционный модуль: различия между версиями

Материал из НСК-Wiki
Перейти к навигации Перейти к поиску
Строка 107: Строка 107:
 
  <li>[https://wiki.nark.ru/index.php/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2_%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B0 Метод поиска разделов справочника]</li>
 
  <li>[https://wiki.nark.ru/index.php/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2_%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B0 Метод поиска разделов справочника]</li>
 
  <li>[https://wiki.nark.ru/index.php/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D1%82%D0%B8%D0%BF%D0%BE%D0%B2_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9 Метод получения типов полей ]</li>
 
  <li>[https://wiki.nark.ru/index.php/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D1%82%D0%B8%D0%BF%D0%BE%D0%B2_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9 Метод получения типов полей ]</li>
 +
<li>[https://wiki.nark.ru/index.php/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2%D1%81%D0%B5%D1%85_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B0 Метод получения всех элементов справочника]</li>
 +
<li>[]</li>
 +
<li>[]</li>
 
  <li>[]</li>
 
  <li>[]</li>
 
</ul>
 
</ul>

Версия 08:09, 30 декабря 2020

Назначение системы

Система предназначена для обеспечения эффективного взаимодействия информационных ресурсов национальной системы квалификации.

Цели создания Системы:

  • Создание единого контролирующего звена, обеспечивающего актуализацию и предоставление данных из различных информационных ресурсов НСК;
  • Создание единой среды гарантированной доставки данных между информационными ресурсами и системами;
  • Предоставление механизма единой аутентификации ко всем информационным ресурсам НСК;
  • Предоставление единой, доступной, актуальной и непротиворечивой нормативно-справочной информации.

Настройка механизма единой аутентификации

В авторизации участвует система-клиент, которая хочет авторизоваться и система-единое окно, осуществляющая авторизацию.

Для внедрения единой аутентификации необходимо:

  • Зарегистрировать систему-клиент в НСИ, справочнике Системы, где системе-клиенту присваивается уникальный токен. При необходимости, дать ей доступ к нужным справочникам. Назначенный системе токен будет в дальнейшем использоваться при обращении системы к шине в качестве токена системы;
  • При нажатии кнопки авторизации в системе-клиенте она открывает окно или иным способом отображает в браузере url-адрес вида https://auth.nark.ru/auth/process?redirectUrl=https%3A%2F%2Fnsi.nark.ru%2Fredirect_handler , где redirectUrl - обязательный параметр, указывающий на адрес в системе-клиенте, которые предназначен для приёма авторизационного токена;
  • Пользователь вводит в системе-едином окне свои email и пароль. Если они верные - происходит перенаправление на адрес redirectUrl с параметром-токеном в url;
  • Система-клиент использует полученный токен для работы с апи шины в качестве токена клиента;
  • Токен системы из пункта 1 и токен клиента из пункта 4 используются для доступа через шину к другим сервисам. Токен клиента - это JWT-токен, содержащий информацию о окончании действия токена. По-умолчанию, он валиден 1 час. При длительных задачах может потребоваться получение нового токена пользователя - это можно сделать соответствующим методом апи шины.

Использование методов взаимодействия

Для информационного взаимодействия между информационными системами реализованы методы обмена данными. Всем системам-участникам информационного взаимодействия доступны все методы взаимодействия между системами, а решение о предоставлении/не предоставлении запрашиваемых данных осуществляется на стороне систем-источников. В Системе для обмена информацией между информационными ресурсами посредством интеграционной шины предусмотрены следующие универсальные сервисы обмена информацией:

  • Сервис отправки запроса от системы в шину
  • Сервис получения результата по запросу от шины

Сервис отправки запроса от системы в шину

Данный метод предназначен для отправки запроса от информационного ресурса в интеграционную шину на получение или передачу необходимой информации.

Тип: синхронный

Состав данных, участвующих во взаимодействии:

• UserToken - JWT токен;
• ApiToken - JWT токен;
• DstService - код сервиса;
• Data – основные данные запроса . Набор данных зависит от кода сервиса.

Внимание! Перед вызовом методов следует получить UserToken при помощи метода "Запрос на получение токена пользователя".

В ответ на вызов сервиса со стороны интеграционной шины приходит:

• RequestId - идентификатор запроса (любая последовательность символов, строка). Данный идентификатор будет использоваться в методе получения результата.

Сервис получения результата по запросу

Данный сервис предназначен для получения результата по запросу по предоставленному идентификатору запроса от интеграционной шины.

Тип: синхронный

Состав данных, участвующих во взаимодействии:

• UserToken - JWT токен;
• ApiToken - JWT токен;
• RequestId - идентификатор запроса.

В ответ на вызов сервиса со стороны интеграционной шины приходит:

• Status - код статуса, строка. Статус может принимать одно из следующих значений:
    o	Wait - ожидает выполнения;
    o	Done - выполнена успешно;
    o	Error - ошибка выполнения.
• Data - данные ответа (при статусе Done) или пустота;
• Error - данные ошибки (при статусе Errore) или пустота.

Используемые в качестве параметров запросов JWT токены используются для аутентификации соответствующего информационного ресурса в Системе.

Особенности выполнения запросов к сервисам

Внимание! Для того, чтобы успешно провести запрос к НСИ, нужно вложить в запрос к шине (в data) запрос к НСИ из спецификации.

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

{
    "userToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwiaWF0IjoxNTk2MTExMjc4LCJuYmYiOjE1OTYxMTEyNzgsImV4cCI6MTU5NjExNDg3OH0.pMR7YJlQBFP-_fVBLqlz92rG7XYrdJg3-3ODiEF_-Is",
    "apiToken": "ARhP4IZU9zjm98usmD6U",
    "dstService": "nsi",
    "sync": false,
    "data": {
        "method": "getElements",
        "directory": "test"
    }
}

СПИСОК ДОСТУПНЫХ МЕТОДОВ