{"id":29675769,"url":"https://github.com/oxidecomputer/reqwest-conditional-middleware","last_synced_at":"2025-07-22T23:38:38.723Z","repository":{"id":62444861,"uuid":"505965123","full_name":"oxidecomputer/reqwest-conditional-middleware","owner":"oxidecomputer","description":"A middleware wrapper that enables (or disables) a wrapped Reqwest middleware on a per-request basis","archived":false,"fork":false,"pushed_at":"2024-11-11T20:24:56.000Z","size":18,"stargazers_count":7,"open_issues_count":0,"forks_count":3,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-07-06T13:50:37.281Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oxidecomputer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-21T18:45:17.000Z","updated_at":"2025-06-19T19:36:46.000Z","dependencies_parsed_at":"2022-11-01T22:31:58.171Z","dependency_job_id":null,"html_url":"https://github.com/oxidecomputer/reqwest-conditional-middleware","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/oxidecomputer/reqwest-conditional-middleware","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Freqwest-conditional-middleware","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Freqwest-conditional-middleware/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Freqwest-conditional-middleware/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Freqwest-conditional-middleware/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oxidecomputer","download_url":"https://codeload.github.com/oxidecomputer/reqwest-conditional-middleware/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Freqwest-conditional-middleware/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266591232,"owners_count":23953082,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-22T23:38:29.699Z","updated_at":"2025-07-22T23:38:38.708Z","avatar_url":"https://github.com/oxidecomputer.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# reqwest-conditional-middleware\n\n[![CI](https://github.com/oxidecomputer/reqwest-conditional-middleware/workflows/CI/badge.svg)](https://github.com/oxidecomputer/reqwest-conditional-middleware/actions?query=workflow%3ACI) [![docs.rs](https://docs.rs/reqwest-conditional-middleware/badge.svg)](https://docs.rs/reqwest-conditional-middleware)\n\nA middleware wrapper that enables (or disables) a wrapped [Reqwest middleware](https://github.com/TrueLayer/reqwest-middleware) on a per-request basis\n\n### Example\n\nUsage of this crate depends on a few crates:\n\n```toml\nasync-trait = \"0.1.80\"\nhttp = \"1\"\nreqwest = version = \"0.12\"\nreqwest-conditional-middleware = \"0.4.0\"\nreqwest-middleware = \"0.4\"\n```\n\nThis is an example of a conditional middleware that short-circuits a middleware stack and\nreturns `OK` whenever the request method is `GET`\n\n```rust\nuse reqwest::{Request, Response};\nuse reqwest_conditional_middleware::ConditionalMiddleware;\nuse reqwest_middleware::{Middleware, Next, Result};\nuse task_local_extensions::Extensions;\n\nstruct AlwaysOk;\n\n#[async_trait::async_trait]\nimpl Middleware for AlwaysOk {\n    async fn handle(\n        \u0026self,\n        _req: Request,\n        _extensions: \u0026mut Extensions,\n        _next: Next\u003c'_\u003e,\n    ) -\u003e Result\u003cResponse\u003e {\n        let builder = http::Response::builder().status(http::StatusCode::OK);\n        Ok(builder.body(\"\").unwrap().into())\n    }\n}\n\nlet conditional = ConditionalMiddleware::new(\n    AlwaysOk,\n    |req: \u0026Request| req.method() == http::Method::GET\n);\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxidecomputer%2Freqwest-conditional-middleware","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foxidecomputer%2Freqwest-conditional-middleware","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxidecomputer%2Freqwest-conditional-middleware/lists"}