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