Перейти к содержанию

ПРОТОКОЛ ИНФОРМАЦИОННОГО ВЗАИМОДЕЙСТВИЯ

Между Системой представления планов полетов по сети Интернет и телефонной сети связи общего пользования и внешними приложениями сторонних разработчиков (API)

Версия 1.3.10-rc.35

1. Общие положения

1.1 Назначение

Настоящий Протокол информационного взаимодействия (далее – Протокол, API) определяет порядок информационного взаимодействия между Системой представления планов полетов по сети Интернет и телефонной сети связи общего пользования (далее – СППИ) и внешними приложениями сторонних разработчиков (далее – Сторонние приложения) при выполнении Сторонними приложениями следующих функций:

  • Авторизация.
  • Получение списка поданных ранее планов ИВП для запрашиваемого пользователя СППИ (логина) на заданный диапазон времени.
  • Получение детальных данных по определенному, ранее поданному плану, принадлежащему авторизовавшемуся пользователю СППИ.
  • Тестирование текста подаваемого плана ИВП (FPL, SHR, SPW).
  • Подача корректных планов: FPL, SHR, SPW.
  • Подача корректных сообщений по поданным ранее планам: CHG, DLA, CNL, DEP, ARR.
  • Подача корректных представления на издание ВР и МР.
  • Выгрузка актуальной информации об ограничениях на ИВП.
  • Общие. В настоящем документе приведен перечень доступных функций. Более подробная спецификация в формате OpenAPI Specification (Swagger) размещена по адресу https://api.ivprf.ru/swagger.

1.2 Порядок внесения изменений в Протокол

Изменения в Протокол вносятся по согласованию сторон и оформляются путём издания новой редакции документа.

1.3 Дополнительная документация

  • Токены - JWT.
  • Авторизация и аутентификация - Bearer Authentication
  • Транспортный протокол - HTTP 1.1.

1.4 Порядок информационного взаимодействия

Взаимодействие происходит путем обращения Стороннего приложения к специализированному веб-сервису СППИ через сеть Интернет по протоколу REST поверх протокола HTTPS.

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

Для подключения к API оставьте свою заявку на sppi@matfmc.ru. Запросы, связанные с получением или записью данных в систему СППИ авторизуются посредством API-ключа (Secret Key), передающегося в заголовке Secret-Key.

Параметр авторизации пользователя указывается в заголовке Autorization, значение которого формируется как «Bearer AccessToken» (также см. Bearer Authentication).

Перед выполнением веб-сервисом СППИ любого запроса выполняются проверки:

  1. Проверка подписи токена
  2. Сравнение expired_at из payload токена с текущим временем
  3. Получение разрешений, необходимых для выполнения операции в списке выше
  4. Дополнительные проверки авторизации метода, если они есть

1.6 Использование refresh токенов

Refresh токен не может быть использован повторно и должен быть удален после окончания срока его действия.

1.7 Пагинация

Пагинация передается в виде двух параметров:

  1. limit, отвечает за количество объектов получаемого ресурса
  2. offset, отвечает за количество объектов, которые необходимо пропустить в данном запросе

Некоторыми функциями могут быть реализованы следующий возможности:

  1. В ответ на массовый запрос ресурса может прийти total, которой будет обозначать общее количество ресурса, доступное для получения по данному запросу (с учетом фильтра)
  2. Минимальное значение limit равно 1, а максимальное значение равно 100

1.8 Ошибки

При взаимодействии между СППИ и Сторонними приложениями используются стандартные http коды для описания ошибок, согласно стандарту транспортного протокола HTTP 1.1 + WebDav.

1.9 Максимальное количество подключений

Максимальное количество подключений внешними приложениями сторонних разработчиков к СППИ ограничено 3(тремя) за одну секунду.

2. Функции

Перечень доступных по API функций определяются правами доступа учетной записи СППИ, которые используются при авторизации API.

2.1 Авторизация

2.1.1 Реализуемые функции

Метод Путь Выполняемое действие
POST /auth/tokens Получение токенов аутентификации.
POST /auth/tokens/refresh Получение токенов аутентификации по refresh token

2.2 Получение списка поданных ранее планов ИВП для запрашиваемого пользователя СППИ (логина)

2.2.1 Статусы

Список статусов:

  • draft
  • on_processing
  • approved
  • rejected
  • canceled
  • in_flight
  • done Статус по умолчанию (при создании): draft.

2.2.2 Реализуемые функции

Метод Путь Выполняемое действие
GET /plans/fpl Получение списка планов FPL пользователя
GET /plans/fpl/{id} Получение плана FPL по идентификатору
GET /plans/shr Получение списка планов SHR пользователя
GET /plans/spw Получение списка планов SPW пользователя

2.3 Получение детальных данных по определенному, ранее поданному плану, принадлежащему авторизовавшемуся пользователю СППИ

Для получения детальных данных по плану необходимо воспользоваться функциями раздела 2.2, передав id интересующего плана в качестве параметра фильтрации.

2.4 Тестирование текста подаваемого плана ИВП (FPL, SHR, SPW)

2.4.1 Статусы

Статусы планов соответствуют 2.2.1

2.4.2 Реализуемые функции

Метод Путь Выполняемое действие
GET /plans/fpl/{id}/test Тестирование текста подаваемого плана FPL
GET /plans/shr/{id}/test Тестирование текста подаваемого плана SHR
GET /plans/spw/{id}/test Тестирование текста подаваемого плана SPW

2.5 Подача корректных планов: FPL, SHR, SPW

2.5.1 Статусы

Статусы планов соответствуют 2.2.1

2.5.2 Реализуемые функции

Метод Путь Выполняемое действие
POST /plans/fpl Создание плана FPL
POST /plans/shr Создание плана SHR
POST /plans/spw Создание плана SPW
POST /plans/fpl/{id}/send Отправка плана FPL
POST /plans/shr/{id}/send Отправка плана SHR
POST /plans/spw/{id}/send Отправка плана SPW

2.6 Подача корректных сообщений по поданным ранее планам: CHG, DLA, CNL, DEP, ARR

2.6.1 Статусы

Статусы планов соответствуют 2.2.1

2.6.2 Реализуемые функции

Метод Путь Выполняемое действие
PATCH /plans/fpl/{id}/chg Отправка CHG на FPL
PATCH /plans/fpl/{id}/dla Отправка DLA на FPL
PATCH /plans/fpl/{id}/cnl Отправка CNL на FPL
PATCH /plans/fpl/{id}/dep Отправка DEP на FPL
PATCH /plans/fpl/{id}/arr Отправка ARR на FPL
PATCH /plans/shr/{id}/cnl Отправка CNL на SHR
PATCH /plans/shr/{id}/dep Отправка DEP на SHR
PATCH /plans/shr/{id}/arr Отправка ARR на SHR
PATCH /plans/spw/{id}/cnl Отправка CNL на SPW
PATCH /plans/spw/{id}/dep Отправка DEP на SPW
PATCH /plans/spw/{id}/arr Отправка ARR на SPW

2.7 Подача корректных представлений на издание ВР и МР

2.7.1 Статусы

Список статусов:

  • draft
  • on_processing
  • approved
  • rejected
  • canceled Статус по умолчанию (при создании): draft.

2.7.2 Реализуемые функции

Метод Путь Выполняемое действие
POST /submissions Создание представления
GET /submissions/{id}/send Отправка представления

2.8 Выгрузка актуальной информации об ограничениях на ИВП

2.8.1 Реализуемые функции

Метод Путь Выполняемое действие
GET /ani/restriction-zones Получение списка ограничений на ИВП

2.9 Получение списка аэродромов

2.9.1 Реализуемые функции

Метод Путь Выполняемое действие
GET /ani/aerodromes Получение списка аэродромов

2.10 Прочие

2.10.1 Реализуемые функции

Метод Путь Выполняемое действие
GET /common/current-time Получение текущего времени сервера
GET /plans/history/{sid} Получение истории по сообщениям
GET /submissions/{id}/history Получение истории преставления