19 个版本
0.1.0 |
|
---|---|
0.0.19 | 2024年4月20日 |
0.0.18 | 2023年11月6日 |
0.0.14 | 2023年10月30日 |
0.0.1 | 2023年9月30日 |
1524 在 Web编程 中
170KB
4K SLoC
有关此crate的更多详细信息以及示例,请查看文档。
Marketstack API
use marketstack::eod::Eod;
use marketstack::Marketstack;
use marketstack::EodData;
use marketstack::{self, Query};
// Create the http client. If you are a paid user, use `Marketstack::new()`.
let client = Marketstack::new_insecure("api.marketstack.com", "private-token").unwrap();
// Create endpoint to query end of day data for AAPL. Corresponds to `eod` endpoint.
let endpoint = Eod::builder().symbol("AAPL").build().unwrap();
// Call the endpoint and retrieve data from Marketstack. Data is deserialized
// for you into a Rust type: `EodData`.
let eod_data: EodData = endpoint.query(&client).unwrap();
// Some endpoints support pagination. Since Marketstack does pagination through query
// params, we simply specify them in the endpoint builder.
// Note that there are limits defined, and therefore, limit(5) is fallible and returns
// a Result.
let pageable_endpoint = Eod::builder().symbol("AAPL").limit(5).unwrap().build().unwrap();
关于 Marketstack-rs
此库实现了一个与 Marketstack API 通信的接口。并非所有端点都已实现(一些是付费用户,而我是免费的),但欢迎提出拉取请求。
此API绑定基于 Marketstack 的 v1 API。
所有支持的端点都位于 api
模块下。每个端点都可以通过“构建器”模式(在这种情况下,derive_builder
crate 使其实现非常直观)方便地构建,以提供支持的字段。要使用端点,您可以使用 Query
特性进行查询。
所有端点都返回调用者选择的实现 serde
的 Deserialize
特性的数据类型。调用者应定义自己的结构以从API获取数据,尽管大多数已经为调用者实现。然而,这提供了灵活性,允许用户适应 Marketstack 的新版本,或轻松实现尚未由此 crate 实现的端点查询数据。用户无需等待此 crate 实现任何端点。
常见问题解答
这个库是否已准备好投入生产使用?
这个 crate 是从个人项目需要从可负担/免费的数据提供商拉取数据的需求中发展而来的。我注意到还没有人创建这样的库,因此我亲自实现了它。虽然我开始使用它,但我还没有对其进行过广泛的测试,并且由于我没有访问权限并且无法从文档中识别其结构,某些付费端点无法实现。
因此,我建议用户不要将其用于生产级项目。话虽如此,请随时提出问题、创建拉取请求或分支此存储库。
致谢
该crate的设计灵感来源于Gitlab
crate维护者的有益工作,以及Ben Boeckel撰写的启迪人心的博客文章。
依赖项
~6–17MB
~252K SLoC