Сервер электронной подписи документов

Star Fork

Документация

Запросы к API

NCANode на данный момент поддерживает 2 режима работы:

  • Посредством HTTP
  • Посредством RabbitMQ

Чтобы выбрать нужный режим взаимодействия, необходимо открыть файл NCANode.ini и изменить параметр mode в секции [main] на нужный Вам.

Способ HTTP

При этом способе, происходит запуск HTTP сервера с указанными в конфигурации хостом и портом (Вы их можете изменить).

Далее после этого, для проверки работоспособности, Вы можете перейти по адресу:

http://127.0.0.1:14579

И увидеть там примерно следующую надпись:

NCANode v1.0 is started. Please use POST request method for work with API.

Да, как гласит эта надпись, запросы к API должны быть выполнены только методом POST.

Далее при каждом запросе, в теле должен формировываться JSON, и необходимо указать заголовок Content-Type следующим образом:

Content-Type: application/json;

После этого Вы полностью готовы делать запросы посредством HTTP!

Способ RabbitMQ

При использовании RabbitMQ, структура JSON запроса немного меняется, добавляются 2 необходимых поля, это:

  • request_id
    • ID запроса указывается при формировании запроса и он нужен для того, чтобы можно было сопоставить запрос с ответом в другой очереди. Иными словами, request_id приписывается к любому ответу от сервера.
  • reply_to
    • Указывает название очереди, в которую надо опубликовать ответ

Например, если сделать такой запрос:

{
  "version":"1.0",
  "method":"NODE.info",
  "request_id": 42,
  "reply_to": "respqueue"
}

То придет примерно такой ответ в очередь respqueue:

{
  "result": {...},
  "request_id": 42,
  "reply_to": "respqueue",
  "status": 0,
  "message": ""
}

Эти 2 поля необходимы в любом случае, при использовании RabbitMQ, т.к. без них Вы не поймете к какому запросу принадлежит ответ в очередях.

Общий формат запросов

В любом запросе всегда ДОЛЖНЫ присутствовать следующие параметры:

  • version - Указывает на версию API. На данный момент она равна 1.0
  • method - Имя метода, который надо выполнить

В любом запросе МОГУТ содержаться следующие параметры:

  • params - Параметры для метода

Примеры валидного запроса

{
  "version": "1.0",
  "method": "NODE.info"
}
{
    "version": "1.0",
    "method": "X509.info",
    "params": {
      "cert": "MIIGbzCCBFegAwIBAgIUXvLHyi4ZAb8j6Pl5hyI3NWa..."
    }
}

Пример невалидного запроса

Не указана версия API

{
  "method": "NODE.info"
}

Не указан метод:

{
    "version": "1.0",
    "params": {
      "cert": "MIIGbzCCBFegAwIBAgIUXvLHyi4ZAb8j6Pl5hyI3NWa..."
    }
}

Общий формат ответов

В любом ответе от NCANode всегда есть 2 параметра, это:

  • status - статус выполнения, если РАВЕН 0 (нулю), то значит всё нормально, иначе произошла ошибка
  • message - сообщение выполнения запроса. Пусто - при успешном выполнении запроса

Postman

В комплекте имеется файл NCANode.postman_collection.json, который предназначен для использования вместе с Postman.

Там Вы можете, выполнять запросы к NCANode посредством http. Если у Вас нет, Postman'а, Вы можете его загрузить на офф. сайте проекта:

https://www.getpostman.com