#reqwest #debug #json

reqwest_inspect_json

Reqwest extention for json response tracing

9 releases

0.1.0 May 31, 2022
0.0.8 Apr 17, 2021

#259 in HTTP client

Download history 21/week @ 2023-10-18 27/week @ 2023-10-25 32/week @ 2023-11-01 30/week @ 2023-11-08 19/week @ 2023-11-15 30/week @ 2023-11-22 51/week @ 2023-11-29 16/week @ 2023-12-06 30/week @ 2023-12-13 29/week @ 2023-12-20 20/week @ 2023-12-27 26/week @ 2024-01-03 36/week @ 2024-01-10 22/week @ 2024-01-17 32/week @ 2024-01-24 20/week @ 2024-01-31

115 downloads per month
Used in tastytrade-rs

Apache-2.0 OR MIT

8KB
92 lines

reqwest-debug-json

Provides inspect_json method for reqwest's response object. The method is replacement for standart json method.

Can be usefull for response json-tracing purposes.

ErrorType must implement both From<reqwest::Error> + From<serde_json::Error>

    .inspect_json::<ResponseStruct, ErrorType>(move |text| {
        debug!("Json data: {}", text);
    })

Extended example:

use reqwest_inspect_json::InspectJson;

#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
struct TestDataClass {
    key1: String,
    key2: String,
}

#[derive(Serialize, Deserialize, Debug)]
struct Response {
    json: TestDataClass,
}

let test_data = TestDataClass {
    key1: "asdada".to_owned(),
    key2: "asdagfdgdf".to_owned(),
};
let test_data_copy = test_data.clone();

let client = reqwest::Client::new();
let response = client
    .post("http://httpbin.org/post")
    .json(&test_data)
    .send()
    .await
    .expect("Request failed")
    .inspect_json::<Response, DebugError>(move |text| {
        println!("Json content: {}", text);
        let text_data = serde_json::from_str::<Response>(text).expect("Parsing failed");
        assert_eq!(text_data.json, test_data_copy);
    })
    .await
    .expect("Response parse failed");

assert_eq!(response.json, test_data);

Dependencies

~4–17MB
~250K SLoC