pub trait ProxyRouterExt<S> {
// Required method
fn proxy_route<T: TargetResolver>(self, path: &str, target: T) -> Self;
}Expand description
Extension trait for axum::Router that adds proxy routing capabilities.
This trait provides a convenient way to add proxy routes to an Axum router with support for both static and dynamic target URLs.
Required Methods§
Sourcefn proxy_route<T: TargetResolver>(self, path: &str, target: T) -> Self
fn proxy_route<T: TargetResolver>(self, path: &str, target: T) -> Self
Add a proxy route that forwards requests to a target URL.
The target can be:
- A static string (
&strorString) - A
TemplateTargetfor dynamic URL generation based on path parameters - Any custom type implementing
TargetResolver
§Arguments
path- The route path pattern (e.g.,/api/{id}or/proxy/{*rest})target- The target URL or resolver
§Example
use axum::Router;
use axum_reverse_proxy::{ProxyRouterExt, proxy_template};
let app: Router = Router::new()
// Static proxy
.proxy_route("/api/{*rest}", "https://api.example.com")
// Dynamic proxy with path substitution
.proxy_route("/users/{id}", proxy_template("https://users.example.com/{id}"));Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.