#json #reqwest #pretty

reqwest-pretty-json

Easy way to emit prettified JSON body via reqwest::RequestBuilder

8 releases

0.11.1 Apr 25, 2021
0.11.0 Jan 9, 2021
0.10.1 Apr 25, 2021
0.10.0 Jan 7, 2020
0.1.2 Nov 12, 2018

#338 in HTTP client

Apache-2.0 OR MIT

9KB
90 lines

reqwest-pretty-json

reqwest provides an easy way to send a JSON formatted HTTP body of the request. However, it gives you zero control of how the serialization is done. Whatever serde_json::to_vec() emits [single condensed string] is going to be used. In vast majority of the case it is good and does the job very well. However, sometimes you may want to have it "prettified". For example, when talking to KV stores (that just keep the bytes you've sent them and do not interpret it in any way) it may be desirable to have your JSON text more human-readable. There is no way to do it directly with reqwest. Of course you can always manually serialize the data structure into anything you want (pretty JSON) and manually set it as request body as well as adding Content-Type: application/json header. This, however, is less nice than the just letting reqwest::RequestBuilder do the right thing.

Exactly for cases like that this crate augments reqwest::RequestBuilder with pretty_json() method.

use reqwest::Client;
use reqwest_pretty_json::PrettyJson;

let data = vec![1, 2, 3];
let client = Client::new();
client
    .post("http://httpbin.org/post")
    .pretty_json(&data)
    .send()
    .unwrap();

Under the hood it uses serde_json::to_vec_pretty() to serialize the data.

Dependencies

~3–17MB
~233K SLoC