客户端库
finlight 发布了八个官方客户端库。每一个都封装了这些文档其余部分所描述的同一套 REST、WebSocket 和 webhook 接口,因此您可以选择与自己技术栈匹配的那一个,而无需手写 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响应采用指数退避重试,因此瞬时故障和速率限制不会在您的代码中表现为错误。 - Webhook 验证:带重放保护的 HMAC-SHA256 签名校验,与 Webhook 认证保持一致。
- 认证:您将 API 密钥传给构造函数,客户端会在每次请求时以
X-API-KEY头发送它。
唯一有意为之的例外是 PHP 客户端,它没有实现 WebSocket 流式传输 —— PHP 的请求/响应模型不适合长连接。请使用 webhooks 将文章推送投递到 PHP 应用中。
这些库并不享有任何特权:它们所做的一切都可以通过普通的 HTTP 和 WebSocket 完成,因此 cURL 或任何 HTTP 客户端仍然是完全受支持的选择。
安装
每个客户端都从构造函数读取您的 API 密钥,并以 X-API-KEY 头发送。请在 finlight 控制台获取密钥。
安装
# npm —— 同时以 @finlight/client 发布到 JSR
npm install finlight-client
如果您使用 Maven 而非 Gradle 构建,请声明相同的坐标:
<dependency>
<groupId>me.finlight</groupId>
<artifactId>finlight-client</artifactId>
<version>0.1.0</version>
</dependency>
源代码仓库
每个客户端都在 MIT 许可下公开开发。欢迎提交 issue 和 pull request。
- 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