actix-proxy
A rust library for the actix-web framework.
Glues together the actix-web and awc crates.
This library provides the IntoHttpResponse trait which transforms
a awc::ClientResponse into a actix_web::HttpResponse and
the SendRequestError type bridging the gap between awc's
SendRequestError and actix-web, by implementing
actix_web::ResponseError.
Sometimes you want to implement a gateway or proxy, which makes a
request to some remote service and forwards the response to the
client that made the request.
actix-web integrates with the awc::Client HTTP client.
Unfortunately, awc::ClientResponse, the response type of the
client request, does not implement the Responder trait.
Because of that, you can't return awc::ClientResponse from an
endpoint of your actix-web server.
This makes it hard to forward the response from the remote location
through an endpoint of the proxy, requiring you to transform the
response into a type that implements Responder.
With the IntoHttpResponse trait offered by actix-proxy, all you
need to do is call the into_http_response method on your
awc::ClientResponse to forward the response from the remote
service through the proxy to the original caller.
Example
In this example we create a basic proxy for the duckduckgo search engine, simply forwarding the called url's path, query and fragment parts to duckduckgo:
use Client;
use ;
use ;
async
Alternatively, you can use the into_wrapped_http_response method
to avoid having to wrap your result in an Ok(..) by hand:
use Client;
use ;
use ;
async