Function warp_reverse_proxy::proxy_to_and_forward_response
source · [−]pub async fn proxy_to_and_forward_response(
proxy_address: String,
base_path: String,
uri: FullPath,
params: QueryParameters,
method: Method,
headers: HeaderMap,
body: Bytes
) -> Result<Response<Bytes>, Rejection>
Expand description
Build a request and send to the requested address.
Wraps the response into a warp::reply
compatible type (http::Response
)
Arguments
-
proxy_address
- A string containing the base proxy address where the request will be forwarded to. -
base_path
- A string with the prepended sub-path to be stripped from the request uri path. -
uri
-> The uri of the extracted request. -
params
-> The URL query parameters -
method
-> The request method. -
headers
-> The request headers. -
body
-> The request body.
Examples
Notice that this method usually need to be used in aggregation with
the extract_request_data_filter
filter which already
provides the (Uri, QueryParameters, Method, Headers, Body)
needed for calling this method. But the proxy_address
and the base_path
arguments need to be provided too.
let request_filter = extract_request_data_filter();
let app = warp::path!("hello" / String)
.map(|port| (format!("http://127.0.0.1:{}/", port), "".to_string()))
.untuple_one()
.and(request_filter)
.and_then(proxy_to_and_forward_response)
.and_then(log_response);