= Формат взаимодействия = API методы системы SPN24 работают по спецификации JSON-RPC (JavaScript Object Notation Remote Procedure Call) [[http://www.jsonrpc.org/specification|Спецификация формата JSON RPC]] Все передаваемые данные — простые объекты, сериализованные в JSON. Запрос — вызов определённого метода, предоставляемого удалённой системой. Он должен содержать три обязательных свойства: * method — Строка с именем вызываемого метода. * params — Массив объектов, которые должны быть переданы методу, как параметры. * id — Значение любого типа, которое используется для установки соответствия между запросом и ответом. Сервер должен отослать правильный ответ на каждый полученный запрос. Ответ должен содержать следующие свойства: * result — Данные, которые вернул метод. Если произошла ошибка во время выполнения метода, это свойство будет содержать значение '''NULL''' * error — Код ошибки, если произошла ошибка во время выполнения метода, иначе '''NULL''' * id — То же значение, что и в запросе, к которому относится данный ответ. Список всех публичных методов API можно найти '''[[Список публичных методов|на этой странице]]''' == Пример запроса к серверу == Пример простого запроса к серверу с использованием bash: {{{#!highlight bash QUERY_HOST="https://someserver/path/to/api" QUERY_ID="833105db-2dbe-d9ba-2ef4-0afe715dfe93" QUERY_METHOD="Session.signin" QUERY_HEADER="Content-Type: application/json" LOGIN="mylogin" PASSWORD="mypassword" QUERY_BODY="{ 'id': '$QUERY_ID', 'method': '$QUERY_METHOD', 'jsonrpc': '2.0', 'params': { 'username': '$LOGIN', 'password': '$PASSWORD', 'is_subagent': true } }" curl -i -X POST -H $QUERY_HEADER -d $QUERY_BODY $QUERY_HOST }}} == Результат запроса == Результат запроса представляет собой объект следующего содержания: {{{#!highlight bash { "id": "833105db-2dbe-d9ba-2ef4-0afe715dfe93", "jsonrpc": "2.0", "result": { "access": { "actions_log": true, }, "access_level": 40, "email": "foo@bar.baz", } } }}}