5 个稳定版本
1.3.0 | 2023 年 5 月 31 日 |
---|---|
1.2.1 | 2022 年 9 月 10 日 |
1.2.0 | 2022 年 8 月 28 日 |
1.1.1 | 2022 年 7 月 8 日 |
1.0.0 | 2021 年 9 月 17 日 |
#1615 in 网页编程
每月 31 次下载
150KB
4K SLoC
Speedrun-Api | Speedrun.com API 的 Rust 包装器
端点在 api 模块下可用。端点可以使用 "builder" 模式构建。要使用端点,可以使用 Query
或 AsyncQuery
特性进行查询。分页端点可以使用 PagedEndpointExt
特性上的方法进行查询。
所有端点返回的类型由调用者选择,这些类型实现了 serde
Deserialize
特性。建议调用者定义自己的类型以从 API 获取数据。这为调用者提供了更多控制权,可以精确地确定哪些字段被反序列化,并且可以更好地适应可能的 API 变更。示例类型在 types 模块中提供。
异步示例
use speedrun_api::{
api::{
leaderboards::FullGameLeaderboard,
AsyncQuery,
},
error::SpeedrunApiResult,
SpeedrunApiBuilder,
types,
}
#[tokio::main]
pub async fn main() -> SpeedrunApiResult<()> {
// Create a new async client
let client = SpeedrunApiBuilder::new().build_async()?;
// Build a new endpoint
// This gets the "All Campaigns" leaderboard for Age of Empires II.
let endpoint = FullGameLeaderboard::builder()
.game("xldev513")
.category("rklg3rdn")
.build()
.unwrap();
// Query the endpoint using `client`
let leaderboard: types::Leaderboard = endpoint.query_async(&client).await?;
}
有关更多示例(包括分页端点),请参阅 examples。
设计说明
设计基于 Ben Boeckel 的博客文章 Designing Rust bindings for REST APIs 和 gitlab crate。
依赖关系
~4–20MB
~264K SLoC