За основу в SDK взяты Protobuf-файлы сервиса из официального API Tinkoff.
Пример.
TinkoffSDK sdk = new TinkoffSDK(token);
GetAccountsResponse accounts = sdk.getServices().getAccounts().GetAccounts();
System.out.printf("Список счетов \n%s", accounts.toString());
Особенности.
Сделан контроль лимита запросов(x-ratelimit-remaining).
При достижении лимита выдерживается пауза до сброса лимита, которая расчитывается как: "время последнего запроса" (поле date из Header) + x-ratelimit-reset пауза расчитывается относительно времени на хосте, рекомендуется синхронизировать время.
Для выключения контроля лимита запросов:
TinkoffSDK sdk = new TinkoffSDK(token).setControlLimit(false);
Сервисы.
Список доступных(реализованных) сервисов см. interface IAllServices
Доступ к сервисам организован через 2 метода:
Базовый набор сервисов:
Реализованы методы описанные официальной документации с минимальными изменениями в параметрах методов (например вместо Quotation передаем BigDecimal и т.п.)
new TinkoffSDK(token).getServices()
Модифицированный набор сервисов:
В основе базовые классы сервисов с дополнительным(модифицированным) функционалом. Например:
- Получение инструмента по Тикеру(без указания class_code)
- Получения истории свечей за произвольный период, если интервал выходит за ограничения, то будет выполнен в несколько запросов)
- и др.
new TinkoffSDK(token).getServicesWithChild()
Подключение через Maven.
Добавьте в pom.xml:
<repositories>
<repository>
<id>Tinkoff-invest-Java-SDK-mvn-repo</id>
<url>https://raw.github.com/yvpopov/Tinkoff-invest-Java-SDK/mvn-repo/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>ru.yvpopov</groupId>
<artifactId>Tinkoff-invest-Java-SDK</artifactId>
<version>1.0.10.5-Beta</version>
</dependency>
</dependencies>