7 个版本
0.1.6 | 2022年5月10日 |
---|---|
0.1.5 | 2022年1月21日 |
#1199 in 编码
每月 21 次下载
5KB
60 行
Feign-RS (Rust 的 REST 客户端)
开始使用
示例
use serde_derive::Deserialize;
use serde_derive::Serialize;
use feign::{client, ClientResult};
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct User {
pub id: i64,
pub name: String,
}
#[client(host = "http://127.0.0.1:3000", path = "/user")]
pub trait UserClient {
#[get(path = "/find_by_id/<id>")]
async fn find_by_id(&self, #[path] id: i64) -> ClientResult<Option<User>>;
#[post(path = "/new_user")]
async fn new_user(&self, #[json] user: &User) -> ClientResult<Option<String>>;
}
#[tokio::main]
async fn main() {
let user_client: UserClient = UserClient::new();
match user_client.find_by_id(12).await {
Ok(option) => match option {
Some(user) => println!("user : {}", user.name),
None => println!("none"),
},
Err(err) => panic!("{}", err),
};
}
特性
- 易于使用
- 异步请求
- 可配置代理
- 支持表单和 JSON
- 重新配置主机
- 附加请求处理器
- 自定义反序列化器
依赖项
~5–16MB
~237K SLoC