3 个版本
0.1.2 | 2022 年 4 月 14 日 |
---|---|
0.1.1 | 2022 年 3 月 14 日 |
0.1.0 | 2022 年 3 月 10 日 |
#15 在 #rest-api
每月 25 次下载
用于 hafas-rest
34KB
486 行
RRW (Rust REST Wrapper)
一个用于轻松构建 REST-API 客户端的 crate。
示例
#[derive(Serialize)]
struct LocationQuery {
query: String,
}
#[derive(Deserialize, Debug, PartialEq, Eq)]
struct Location {
id: String,
name: String,
}
#[rest]
impl Bahn {
async fn location(&self, location: &LocationQuery) -> Result<Vec<Location>, reqwest::Error> {
RestRequest::<&LocationQuery, ()>::get("/locations").query(location)
}
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
env_logger::init();
let bahn = Bahn::new(RestConfig::new("https://v5.db.transport.rest"));
let berlin = LocationQuery {
query: "Berlin".to_string(),
};
let results = bahn.location(&berlin).await?;
for location in results {
println!("{}: {}", location.id, location.name);
}
Ok(())
}
功能
- 轻松构建 REST 包装器
- 包含节流机制(目前不太先进,但可扩展)。
未来功能
- 更先进的节流机制。
- 身份验证(用户名/密码,OAuth)。
依赖关系
~5–21MB
~273K SLoC