Crate http_serde

Source
Expand description

§Serde support for the HTTP crate

Adds ability to serialize and deserialize types from the HTTP crate.

If you want to serialize Request or Response, use into_parts() and serialize their parts, and then rebuild them using their Builder.

§Usage

You must annotate fields with #[serde(with = "http_serde::<appropriate method>")].

#[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,
}

There’s also support for the types wrapped in an Option. To use it, change the with attribute prefix from http_serde:: to http_serde::option::.

#[derive(serde::Serialize, serde::Deserialize)]
struct MyStruct {
    #[serde(with = "http_serde::option::header_map")]
    //                          ^^^^^^
    optional_headers: Option<HeaderMap>,
}

§Requirements

  • Rust 1.56 or later.

Re-exports§

pub use http;

Modules§

authority
For http::uri::Authority
header_map
For http::HeaderMap
method
For http::Method
option
Serializers and deserializers for types wrapped in Option.
status_code
For http::StatusCode
uri
For http::Uri
version
For http::Version