9 个稳定版本
2.1.1 | 2024年5月27日 |
---|---|
2.0.0 | 2023年11月20日 |
1.1.3 | 2023年8月18日 |
1.1.2 | 2022年9月11日 |
1.0.1 |
|
#124 在 编码 中
324,814 每月下载量
用于 174 个 crate (51 直接)
22KB
441 代码行
Serde 对 HTTP crate 的支持
增加了对 HTTP crate 中类型进行序列化和反序列化的功能。
如果您想序列化 Request
或 Response
,请使用 into_parts()
并序列化它们的各个部分,然后再使用它们的 Builder
重新构建它们。
用法
您必须使用 #[serde)]
注释字段,并指定 with = "http_serde::<适当的方法>"
。
# use http::{*, uri::*};
#[derive(serde::Serialize, serde::Deserialize)]
struct MyStruct {
#[serde(with = "http_serde::method")]
method: Method,
#[serde(with = "http_serde::status_code")]
status: StatusCode,
#[serde(with = "http_serde::uri")]
uri: Uri,
#[serde(with = "http_serde::header_map")]
headers: HeaderMap,
#[serde(with = "http_serde::authority")]
authority: Authority,
}
还支持包裹在 Option
中的类型。要使用它,将 with
属性前缀从 http_serde::
更改为 http_serde::option::
。
# use http::{*, uri::*};
#[derive(serde::Serialize, serde::Deserialize)]
struct MyStruct {
#[serde(with = "http_serde::option::header_map")]
// ^^^^^^
optional_headers: Option<HeaderMap>,
}
要求
- Rust 1.56 或更高版本。
依赖项
~0.7–1MB
~18K SLoC