Документация
Запросы к 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'а, Вы можете его загрузить на офф. сайте проекта: