Клиентские библиотеки
finlight публикует восемь официальных клиентских библиотек. Каждая из них охватывает тот же набор возможностей REST, WebSocket и вебхуков, что описан на остальных страницах, поэтому вы можете выбрать библиотеку под свой стек вместо того, чтобы писать HTTP-вызовы вручную.
| Язык | Пакет | Требования | Стриминг |
|---|---|---|---|
| TypeScript / JavaScript | finlight-client (npm) | Node.js | Да |
| Python | finlight-client (PyPI) | Python 3.7+ | Да |
| Go | github.com/callbk/finlight-client-go | Go 1.23+ | Да |
| .NET / C# | Finlight.Client (NuGet) | .NET 8+ | Да |
| Java / Kotlin | me.finlight:finlight-client (Maven) | Java 17+ | Да |
| PHP | finlight/client (Packagist) | PHP 8.1+ | Нет |
| Ruby | finlight-client (RubyGems) | Ruby 3.2+ | Да |
| Rust | finlight-client (crates.io) | Rust 1.85+ | Да |
Что даёт каждый клиент
Библиотеки построены по одной и той же спецификации, поэтому смена языка не меняет понятий, с которыми вы работаете:
- REST: поиск статей, получение отдельной статьи по ссылке и список доступных источников — см. Эндпоинты.
- Стриминг в реальном времени: как расширенная, так и необработанная лента WebSocket, представленная в виде идиоматичного для языка потокового типа (асинхронные итераторы, каналы,
Stream). Переподключения, поддержание связи через ping/pong и упреждающая ротация соединений выполняются за вас — см. Основы WebSocket. - Отказоустойчивость: повторные попытки с экспоненциальной задержкой при ответах
429и5xx, поэтому временные сбои и лимиты запросов не проявляются в вашем коде как ошибки. - Проверка вебхуков: проверка подписи HMAC-SHA256 с защитой от повторов, соответствующая разделу Аутентификация вебхуков.
- Аутентификация: вы передаёте свой ключ API в конструктор, и клиент отправляет его в заголовке
X-API-KEYпри каждом запросе.
Единственное намеренное исключение — клиент PHP, который не реализует стриминг через WebSocket: модель «запрос/ответ» в PHP плохо подходит для долгоживущего соединения. Для push-доставки в PHP-приложение используйте вебхуки.
Библиотеки не имеют никаких привилегий: всё, что они делают, доступно по обычному HTTP и WebSocket, поэтому cURL или любой другой HTTP-клиент остаётся полностью поддерживаемым вариантом.
Установка
Каждый клиент читает ваш ключ API из конструктора и отправляет его в заголовке X-API-KEY. Получите ключ в панели управления finlight.
Установка
# npm — также публикуется в JSR как @finlight/client
npm install finlight-client
Если вы собираете проект с помощью Maven, а не Gradle, объявите ту же координату:
<dependency>
<groupId>me.finlight</groupId>
<artifactId>finlight-client</artifactId>
<version>0.1.0</version>
</dependency>
Репозитории исходного кода
Каждый клиент разрабатывается открыто под лицензией MIT. Issues и pull requests приветствуются.
- TypeScript / JavaScript — jubeiargh/finlight-client
- Python — jubeiargh/finlight-client-py
- Go — callbk/finlight-client-go
- .NET / C# — callbk/finlight-client-dotnet
- Java / Kotlin — callbk/finlight-client-java
- PHP — callbk/finlight-client-php
- Ruby — callbk/finlight-client-ruby
- Rust — callbk/finlight-client-rust
Что дальше?
- Сделайте первый вызов с помощью Быстрого старта
- Изучите полный справочник эндпоинтов REST
- Освойте синтаксис запросов в разделе Продвинутое построение запросов
- Получайте статьи в реальном времени с помощью Быстрого старта WebSocket
- Принимайте отправляемые статьи через Вебхуки
- Нашли ошибку или не хватает нужного языка? Напишите нам через Поддержку