3 个版本
0.1.2 | 2022 年 12 月 25 日 |
---|---|
0.1.1 | 2022 年 2 月 24 日 |
0.1.0 | 2022 年 2 月 23 日 |
#684 in 异步
48KB
728 行
hypixel-api-rust
这是 Hypixel API 的 Rust 实现。
Hypixel 的公共 API 对每分钟请求量施加了默认限制 120。此 crate 提供了一个包装器,它完全异步,并可以查询实现 DeserializeOwned
的任何数据类型。
入门
如 Hypixel 公共 API 中所述,查询 API 中的大多数端点都需要 ApiKey
。
此 crate 的核心是 RequestHandler
。
内部,它跟踪程序在过去一分钟内发送了多少请求,当需要时保持请求的溢出,并始终与 Hypixel REST API
的内部时钟保持同步。
API 的响应可以通过 serde 序列化为任何实现 DeserializeOwned
的数据结构。
基本示例
use hypixel_api::RequestHandler;
use hypixel_api::StatusReply;
let api_key = Uuid::from_str("your-api-key").unwrap(); // get your ApiKey
let request_handler = RequestHandler::new(api_key); // initialize a new RequestHandler
let response = request_handler.request::<StatusReply>("status?uuid=069a79f4-44e9-4726-a5be-fca90e38aaf5", true); // query the status of Notch
// send more requests ...
let data: StatusReply = response.await.unwrap().unwrap();
// use data ...
此 crate 的任何 Result::Ok
响应都将保证是 API 的 200 OK
响应,因此可以保证可以将其反序列化为相应的数据结构。
目前,许多示例响应数据结构尚未实现。这不会影响此 crate 查询该数据的能力。只需定义您自己的数据结构,并像平常一样使用它与 RequestHandler
一起使用。您甚至可以替换所有预制的数据结构并完全自定义。 (欢迎为此存储库做出贡献!!)
有关更多示例,请参阅文档。
功能
util
- 启用处理Hypixel 公共 API
返回的数据的实用函数reply
- (依赖于util
) - 允许从Hypixel 公共 API
获取即用型数据结构作为响应
许可证
根据以下任一许可证授权:
- Apache 许可证 2.0 版,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
任选其一。
贡献
请随意贡献,每一次尝试都很重要!
除非您明确表示,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在作品中的任何贡献,将如上双许可,不附加任何额外的条款或条件。
依赖项
~8–21MB
~315K SLoC