Как начать работать

API Trading Desk основана на использовании протокола JSON-RPC 2.0.

JSON-RPC 2.0

JSON-RPC 2.0 работает, отсылая запросы к серверу, реализующему протокол. Клиентом обычно является программа, которой нужно вызвать метод на удалённой системе. Множество входных параметров может быть передано удалённому методу как массив или запись. Метод также может вернуть множество выходных данных. Удалённый метод вызывается отправлением запроса на удалённый сервер посредством HTTP или TCP/IP-сокета При использовании HTTP заголовок Content-Type определяется как application/json.

Все передаваемые данные — простые записи, сериализованные в JSON.

Запрос

Запрос — вызов определённого метода, предоставляемого удалённой системой. Он должен содержать три обязательных свойства:

  • method — строка с именем вызываемого метода.
  • params — массив данных, которые должны быть переданы методу, как параметры.
  • id — значение любого типа, которое используется для установки соответствия между запросом и ответом.

Ответ

Сервер должен отослать правильный ответ на каждый полученный запрос. Ответ должен содержать следующие свойства:

  • result — данные, которые вернул метод. Если произошла ошибка во время выполнения метода, это свойство должно быть установлено в null.
  • error — код ошибки, если произошла ошибка во время выполнения метода, иначе null.
  • id — то же значение, что и в запросе, к которому относится данный ответ.

Для ситуаций, когда ответ не требуется, были введены уведомления. Уведомление отличается от запроса отсутствием свойства id, которое не требуется, так как не будет передан ответ. В таком случае свойство id будет пропущено (для версия 2.0).
Подробнее о спецификации протокола можете прочитать в официальных источниках.

Авторизация

Чтобы получить токен доступа пользователю необходимо пройти авторизацию. Для авторизации используется метод: user-auth.
Указав e-mail, пароль и домен, в котором происходит авторизация, пользователь с помощью данного метода получит следующие значения:

  • "access_token" - токен доступа (живет 30 минут),
  • "refresh_token" - токен рефреша (живет 60 дней),
  • "expire" - таймстемп истечения срока жизни токена доступа.

Далее все методы в TD доступны только при передаче токена доступа в качестве http-заголовка:

-H 'Authorization: Bearer token'```
Например:
```-H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjAyNjYxOTE1LCJoYXNoIjoiZTlhZDZiMTlkZmQ1OTYyMWE4NGIyYTAxMGMwM2FhYTEifQ.z4b0wWKfn6UDlRL2K0ePb7tED8jt-bu-1Js0lNn_7JU'```

[block:api-header]
{
  "title": "Обновление токена"
}
[/block]





Обновить существующий токен доступа возможно по его рефреш токену. Для этого используется метод [user-token-refresh](https://terratraf.readme.io/reference/usertokenrefresh)