3 个版本
| 0.1.2 | 2020 年 2 月 5 日 |
|---|---|
| 0.1.1 | 2020 年 2 月 5 日 |
| 0.1.0 | 2020 年 2 月 5 日 |
#6 在 #stars
220KB
3K SLoC
rust-brawl-api
Brawl Stars API 的 Rust 实现(https://developer.brawlstars.com/)。
使用方法
- 使用
cargo(在您的Cargo.toml中添加为依赖项)。 - 在 Brawl Stars 开发者网站上生成 API 密钥。
- 代码!
例如
use brawl_api::prelude::*;
fn main() -> Result<(), Box<dyn ::std::error::Error>> {
let client = Client::new("MYAUTHTOKEN");
let player = Player::fetch(&client, "#PLAYER_TAG_TO_FETCH")?;
// now data for player with the given tag is available.
// See all models in the documentation.
}
许可证
许可协议为 MIT 许可证(参见 LICENSE 文件)。
贡献
除非您明确声明,否则您有意提交以供包含在作品中的任何贡献均应许可为 MIT,不附加任何额外条款或条件。
lib.rs:
该 brawl-api 包通过使用 官方 Brawl Stars API 创建模型和获取方法。它旨在成为一个可用、可预测且适合程序员的库。任何地方如果不符合这一要求,都非常欢迎贡献。
请求
所有请求工作都由 reqwest 包 完成。该库支持同步(阻塞)和,通过 async 功能(默认启用),异步函数风格 - 所有具有这种双重性的获取方法都有一个同步版本(具有其正常名称)和一个异步版本(通过在同步名称前加 a_ 命名 - 例如: fetch(同步)和 a_fetch(异步))。
反序列化和数据结构
JSON 的反序列化是通过 serde 和 serde-json 库完成的,这两个库在这一点上非常有价值。这意味着 所有库模型 都实现了 Serialize 和 Deserialize serde 特性,并针对 API 的官方文档中记录的 JSON 格式进行了优化。
此外,值得注意的是,大多数API模型都实现了Default特质。这是用于与serde一起使用,以确保无论API失败与否,值都会存在。大多数情况下,未标记为Option<T>的字段应该存在 - 注意到官方《斗舞星》API文档中提到所有字段都是可选的(这并不有帮助),尽管大多数情况下它们都会出现,除非服务器故障或添加了某些意外的新用例(在这种情况下,可以责备库没有更新 - 欢迎贡献PR,或者只需提出一个关于此问题的issue,将其添加到库中!)。
有关模型更多信息,请参阅model模块。
推荐用法
建议使用库的prelude模块导入库
use brawl_api::prelude::*;
这会将库的所有特质、模型和辅助Brawlers枚举引入作用域。
如果不想将所有模型引入作用域,那么至少应该导入所有特质,以便模型能够正常工作
use brawl_api::traits::*;
功能标志
该包提供了一些功能标志(默认全部启用)
async标志- 启用使用异步(非阻塞)获取函数 -
a_fetch、a_fetch_from、a_fetch_into、a_refetch- 在适用的情况下。 - 将
async_trait添加为依赖项。
- 启用使用异步(非阻塞)获取函数 -
auto-hashtag标志:启用在需要标签的任何地方智能插入标签。- 这意味着,例如,在对
Player::fetch的调用中,需要获取玩家的标签,可以传递一个以hashtag开头的字符串(在这种情况下,库直接使用它)或者不使用(然后,启用此功能,库会自动添加它)。 - 禁用此功能需要在每个标签字符串的开始处传递hashtag。这是由于API解析标签的方式,对此几乎无能为力。
- 这意味着,例如,在对
chrono:将chrono添加为依赖项并启用使用TimeLike.parse,该功能将传入的时间戳解析为chrono::DateTime<chrono::Utc>。players标志:启用使用model::players模块(用于/players端点)。clubs标志:启用使用model::clubs模块(用于/clubs端点)。rankings标志:启用使用model::rankings模块(用于/rankings端点)。brawlers标志:启用使用model::brawlers模块(用于/brawlers端点)。
依赖关系
~4–8.5MB
~188K SLoC