#http #http-header #deserialize #serde #status #url #serde-derive

http-serde

Serde 对 http crate 的支持。 (序列化/反序列化) HeaderMap, Uri, Method, StatusCode

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 2020年3月15日

#124编码

Download history 84121/week @ 2024-05-03 90215/week @ 2024-05-10 96790/week @ 2024-05-17 99431/week @ 2024-05-24 102445/week @ 2024-05-31 94676/week @ 2024-06-07 95468/week @ 2024-06-14 87252/week @ 2024-06-21 76374/week @ 2024-06-28 73491/week @ 2024-07-05 73015/week @ 2024-07-12 79271/week @ 2024-07-19 84583/week @ 2024-07-26 82427/week @ 2024-08-02 77218/week @ 2024-08-09 64034/week @ 2024-08-16

324,814 每月下载量
用于 174 个 crate (51 直接)

Apache-2.0 OR MIT

22KB
441 代码行

Serde 对 HTTP crate 的支持

增加了对 HTTP crate 中类型进行序列化和反序列化的功能。

如果您想序列化 RequestResponse,请使用 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