Crate http_cache_reqwest

Source
Expand description

The reqwest middleware implementation for http-cache.

use reqwest::Client;
use reqwest_middleware::{ClientBuilder, Result};
use http_cache_reqwest::{Cache, CacheMode, CACacheManager, HttpCache, HttpCacheOptions};

#[tokio::main]
async fn main() -> Result<()> {
    let client = ClientBuilder::new(Client::new())
        .with(Cache(HttpCache {
            mode: CacheMode::Default,
            manager: CACacheManager::default(),
            options: HttpCacheOptions::default(),
        }))
        .build();
    client
        .get("https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching")
        .send()
        .await?;
    Ok(())
}

§Overriding the cache mode

The cache mode can be overridden on a per-request basis by making use of the reqwest-middleware extensions system.

client.get("https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching")
    .with_extension(CacheMode::OnlyIfCached)
    .send()
    .await?;

Structs§

BadRequest
Error type for request parsing failure
CACacheManagermanager-cacache
Implements CacheManager with cacache as the backend.
Cache
Wrapper for HttpCache
CacheOptions
Configuration options which control behavior of the cache. Use with CachePolicy::new_options().
HttpCache
Caches requests according to http spec.
HttpCacheOptions
Can be used to override the default CacheOptions and cache key. The cache key is a closure that takes http::request::Parts and returns a String.
HttpResponse
A basic generic type that represents an HTTP response
MokaCachemanager-moka
A thread-safe, futures-aware concurrent in-memory cache.
MokaCacheBuildermanager-moka
Builds a Cache with various configuration knobs.
MokaManagermanager-moka
Implements CacheManager with moka as the backend.
Parts
Component parts of an HTTP Request

Enums§

CacheMode
Similar to make-fetch-happen cache options. Passed in when the HttpCache struct is being built.

Traits§

CacheManager
A trait providing methods for storing, reading, and removing cache records.