3 个版本 (破坏性)
0.6.0 | 2024年2月7日 |
---|---|
0.5.0 | 2022年6月10日 |
0.4.0 | 2021年11月12日 |
#5 在 #valve
15MB
3.5K SLoC
Tappet
对 Steam Web API 和 XPAW Steam API 的纯 Rust 绑定,其中后者包含一些 Steam Web API 的未记录但有用的端点。
此库受到 Rust Github API Wrapper 的极大启发。
内部,Steam-Web-API 为了简单起见使用了 reqwest 客户端,但未来可能会改变。
端点缺少 IDE 自动完成
由于此库大量使用过程宏来生成强类型绑定,如果您的 IDE 不支持过程宏完成,您可能无法获得端点的自动完成。
缺少功能
- 合作伙伴 API 不可用;
- 不流行的接口不可用;
- 所有端点的响应;
入门指南
将以下内容添加到您的 Cargo.toml
[dependencies]
tappet = "^0.4"
或者如果您需要阻塞客户端
tappet = { version = "^0.4", default-features = false, features = ["blocking"] }
然后在您的 lib.rs
或 main.rs
文件中添加
use tappet::{Executor, SteamAPI};
示例用法
use tappet::{Executor, SteamAPI};
// if using blocking client
// use tappet::blocking::{Executor, SteamAPI};
#[tokio::main]
async fn main() -> Result<()> {
let client = SteamAPI::new(std::env!("STEAM_API"));
// You choose between the already structured response
let response: tappet::response_types::GetPlayerBansBase = client
.get()
.ISteamUser()
.GetPlayerBans(vec!["76561197984835396".to_string()])
.execute_with_response()
.await?;
// or the raw response from reqwest
let response: reqwest::Response = client
.get()
.ISteamUser()
.GetPlayerSummaries(vec!["76561197984835396".to_string()])
.execute()
.await?;
}
与不同的机器人重用
// the bot you want to recover pending trade offers
let bot_api_key: &str = "..."
let response: GetTradeOffersResponse = api_client
.get()
.IEconService()
.GetTradeOffers(true, false, u32::MAX, None, None, None, None)
.inject_custom_key(bot_api_key)
.execute_with_response()
.await?;
并非所有端点都有结构化端点响应。您可以做出贡献!
依赖项
~34–46MB
~790K SLoC