HTTP
Устаревший подход. Рекомендуется для всех новых интеграций использовать “Альтернативный”
Обмен сообщения происходит по адресу: host:port/tsrv
По умолчанию HTTP сервер стартует на 127.0.0.1:1828, однако
это можно поменять в настройках (server.addr) или переменной окружения
TSRV_ADDR
Все запросы совершаются методом POST
Заголовок Content-Type должен иметь значение application/json
Пример:
> POST /tsrv HTTP/1.1
> Host: localhost:1828
> User-Agent: insomnia/2021.5.3
> Content-Type: application/json
> Accept: */*
> Content-Length: 109
| {
| "address": "ik.service.app",
| "headers": {
| "action": "version"
| },
| "data": null,
| "type": "send"
| }
Альтернативный способ взаимодействия по HTTP
Возможен так же вариант взаимодействия по следующему URL: /tsrv/{address}/{action}.
Метод POST поддерживается всеми функциями, часть функций
(например, получение информации) так же поддерживает GET.
В данном варианте все заголовки (поле headers сообщения) могут быть помещены в заголовки HTTP запроса,
а заголовок action может быть опущен, т.к. находится внутри пути запроса. В тело HTTP запроса
помещается поле data сообщения.
В данном случае пример получения версии выглядит следующим образом:
> POST /tsrv/ik.service.app/version HTTP/1.1
> Host: localhost:1828
> User-Agent: insomnia/2021.5.3
> Content-Type: application/json
> Accept: */*
> Content-Length: 0
В то же время запрос на авторизацию (с телом запроса) выглядит следующим образом:
> POST /tsrv/ik.service.token.authority/authorize HTTP/1.1
> Host: localhost:1828
> User-Agent: insomnia/2021.5.3
> Content-Type: application/json
> token: AVQ11071080687
> tokens.refresh: true
> Accept: */*
> Content-Length: 19
| {
| "pin": "47702"
| }
Требуется обратить внимание на HTTP заголовки token и tokens.refresh - они находятся в HTTP запросе
В случае ошибки возвращается HTTP статус 500 (или 404 для несуществующего метода) и ошибка в теле
ответа.
Пустое тело запроса эквивалентно null.