本页面为机器翻译。英文版本为原文,可能更准确或更及时。 查看英文版

客户端库

finlight 发布了八个官方客户端库。每一个都封装了这些文档其余部分所描述的同一套 REST、WebSocket 和 webhook 接口,因此您可以选择与自己技术栈匹配的那一个,而无需手写 HTTP 调用。

语言软件包环境要求流式传输
TypeScript / JavaScriptfinlight-client (npm)Node.js
Pythonfinlight-client (PyPI)Python 3.7+
Gogithub.com/callbk/finlight-client-goGo 1.23+
.NET / C#Finlight.Client (NuGet).NET 8+
Java / Kotlinme.finlight:finlight-client (Maven)Java 17+
PHPfinlight/client (Packagist)PHP 8.1+
Rubyfinlight-client (RubyGems)Ruby 3.2+
Rustfinlight-client (crates.io)Rust 1.85+

每个客户端提供什么

这些库均按同一份规范构建,因此切换语言不会改变您所使用的概念:

  • REST:搜索文章、按链接获取单篇文章,以及列出可用来源 —— 请参阅端点
  • 实时流式传输:增强版和原始版 WebSocket 数据流均以该语言惯用的流类型呈现(异步迭代器、通道、Stream)。重连、ping/pong 保活以及主动的连接轮换都会为您处理 —— 请参阅 WebSocket 基础
  • 弹性:对 4295xx 响应采用指数退避重试,因此瞬时故障和速率限制不会在您的代码中表现为错误。
  • Webhook 验证:带重放保护的 HMAC-SHA256 签名校验,与 Webhook 认证保持一致。
  • 认证:您将 API 密钥传给构造函数,客户端会在每次请求时以 X-API-KEY 头发送它。

这些库并不享有任何特权:它们所做的一切都可以通过普通的 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。

接下来做什么?