Crate salvo_proxy

Source
Expand description

Provide proxy support for Salvo web framework.

§Example

In this example, if the requested URL begins with http://127.0.0.1:5800/, the proxy goes to https://www.rust-lang.org; if the requested URL begins with http://localhost:5800/, the proxy goes to https://crates.io.

use salvo_core::prelude::*;
use salvo_proxy::Proxy;

#[tokio::main]
async fn main() {
    let router = Router::new()
        .push(
            Router::new()
                .host("127.0.0.1")
                .path("{**rest}")
                .goal(Proxy::use_hyper_client("https://www.rust-lang.org")),
        )
        .push(
            Router::new()
                .host("localhost")
                .path("{**rest}")
                .goal(Proxy::use_hyper_client("https://crates.io")),
        );

    let acceptor = TcpListener::new("0.0.0.0:5800").bind().await;
    Server::new(acceptor).serve(router).await;
}

Structs§

HyperClienthyper-client
A Client implementation based on hyper_util::client::legacy::Client.
Proxy
Handler that can proxy request to other server.
ReqwestClientreqwest-client
A Client implementation based on reqwest::Client.

Traits§

Client
Client trait.
Upstreams
Upstreams trait.

Functions§

default_url_path_getter
Default url path getter.
default_url_query_getter
Default url query getter. This getter just return the query string from request uri.

Type Aliases§

UrlPartGetter
Url part getter. You can use this to get the proxied url path or query.