#reqwest-middleware #reqwest #http-middleware #traits #middleware #http

reqwest-traits

Traits用于reqwest,允许注入自定义HTTP客户端,如reqwest_middleware::ClientWithMiddleware

2个不稳定版本

0.2.0 2023年6月22日
0.1.0 2023年6月22日

#483 in HTTP客户端

MIT许可协议

15KB
249 代码行

reqwest-traits

reqwest-traits

这个crate提供了reqwest crate的traits。它旨在被需要执行HTTP请求、希望允许用户注入自己的reqwest客户端,但不想强制用户使用reqwest::Client的库使用。

示例用例

  • 在您的程序中使用reqwest::Client,但使用rvcr注入客户端进行测试,以避免进行真实的HTTP请求。
  • 如果您的库的用户想要缓存或跟踪中间件,可以注入他们自己的reqwest::Client,即reqwest_middleware::ClientWithMiddleware。

示例

use reqwest_traits::Client;

struct MyClient<C: Client> {
    http: C,
}

async fn plain_reqwest() {
    let http = reqwest::Client::new();
    let client = MyClient { http };
    let req = client.http.get("https://example.com");
    let response = req.send().await.unwrap();
    assert_eq!(response.status(), 200);
}

async fn reqwest_middleware() {
    let http = reqwest_middleware::ClientBuilder::new(
        reqwest::Client::new(),
    ).build();
    let client = MyClient { http };
    let req = client.http.get("https://example.com");
    let response = req.send().await.unwrap();
    assert_eq!(response.status(), 200);
}

许可协议:MIT

依赖项

~4–19MB
~252K SLoC