5 个版本
0.2.0 | 2024 年 3 月 3 日 |
---|---|
0.1.1 | 2023 年 8 月 15 日 |
0.1.0 | 2023 年 8 月 12 日 |
0.1.0-alpha.2 | 2023 年 8 月 10 日 |
0.1.0-alpha.1 | 2023 年 8 月 7 日 |
在 HTTP 客户端 中排名 212
每月下载量 115
40KB
622 行
restless
REST API 包装器,减少痛苦。此特质公开辅助特质,让您可以通过特质实现来定义您的 API。如果您在前后端都使用 Rust,则非常有用,可以删除冗余代码。类似于 OpenAPI 等标准,但使用 Rust 特质系统。特质实现为您免费提供 API 客户端。
示例
如果您构建了一个封装了关于您的 REST 请求所有信息的有用类型,例如这个
/// GET /api/v1/users/:name/documents/:id
pub struct UserDocument {
user: String,
document: Uuid,
}
那么您可以为此类型实现 GetRequest
特质并使用 RequestMethod
标记。
use restless::{GetRequest, method::Get};
impl GetRequest for UserDocument {
type Response = Json<Document>;
type Query = ();
fn path(&self) -> Cow<'_, str> {
format!("api/v1/users/{}/documents/{}", self.user, self.document).into()
}
fn query(&self) -> Self::Query {}
}
impl RequestMethod for UserDocument {
type Method = Get<Self>;
}
现在您可以使用内置客户端进行此类请求。
客户端
此包通过启用相应的功能提供与以下 HTTP 客户端和框架的集成
名称 | 描述 |
---|---|
reqwest | 使用 reqwest 包进行 HTTP 请求。 |
gloo | 使用 gloo_net 包在 WebAssembly Rust 应用程序中进行 HTTP 请求。 |
yew | 在 Yew 前端组件内部进行 HTTP 请求。 |
许可证
MIT,见 LICENSE.md
依赖关系
~0.3–4.5MB
~82K SLoC