#public-api #wrapper #rate-limiting #hypixel #api-wrapper #api #api-bindings

hypixel_api

hypixel API 的通用包装器(客户端自动速率限制)

3 个版本

0.1.2 2022 年 12 月 25 日
0.1.1 2022 年 2 月 24 日
0.1.0 2022 年 2 月 23 日

#684 in 异步

MIT/Apache

48KB
728

hypixel-api-rust

Latest Version

这是 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 许可证定义的,您有意提交以包含在作品中的任何贡献,将如上双许可,不附加任何额外的条款或条件。

依赖项

~8–21MB
~315K SLoC