io.vertx.httpproxy

## Interface HttpProxy

- All Superinterfaces:
    Handler<HttpServerRequest>

      public interface HttpProxy
      extends Handler<HttpServerRequest>

  Handles the HTTP reverse proxy logic between the user agent and the origin.

  Author:
    Julien Viet

- - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `HttpProxy` | `addInterceptor(ProxyInterceptor interceptor)` Add an interceptor to the interceptor chain.
    `void` | `handle(HttpServerRequest request)` Handle the outbound `HttpServerRequest`.
    `default HttpProxy` | `origin(int port, String host)` Set the host name and port number of the origin.
    `default HttpProxy` | `origin(SocketAddress address)` Set the `SocketAddress` of the origin.
    `HttpProxy` | `originRequestProvider(java.util.function.BiFunction<HttpServerRequest,HttpClient,Future<HttpClientRequest>> provider)` Set a provider that creates the request to the origin server based the incoming HTTP request.
    `default HttpProxy` | `originSelector(java.util.function.Function<HttpServerRequest,Future<SocketAddress>> selector)` Set a selector that resolves the origin address based on the incoming HTTP request.
    `static HttpProxy` | `reverseProxy(HttpClient client)` Create a new `HttpProxy` instance.
    `static HttpProxy` | `reverseProxy(ProxyOptions options, HttpClient client)` Create a new `HttpProxy` instance.

- - ### Method Detail

    - #### reverseProxy

          static HttpProxy reverseProxy(HttpClient client)

      Create a new `HttpProxy` instance.
      Parameters:
        `client` - the `HttpClient` that forwards outbound requests to the origin.
      Returns:
        a reference to this, so the API can be used fluently.

    - #### reverseProxy

          static HttpProxy reverseProxy(ProxyOptions options,
                                        HttpClient client)

      Create a new `HttpProxy` instance.
      Parameters:
        `client` - the `HttpClient` that forwards outbound requests to the origin.
      Returns:
        a reference to this, so the API can be used fluently.

    - #### origin

          default HttpProxy origin(SocketAddress address)

      Set the `SocketAddress` of the origin.
      Parameters:
        `address` - the `SocketAddress` of the origin
      Returns:
        a reference to this, so the API can be used fluently

    - #### origin

          default HttpProxy origin(int port,
                                   String host)

      Set the host name and port number of the origin.
      Parameters:
        `port` - the port number of the origin server
        `host` - the host name of the origin server
      Returns:
        a reference to this, so the API can be used fluently

    - #### originSelector

          default HttpProxy originSelector(java.util.function.Function<HttpServerRequest,Future<SocketAddress>> selector)

      Set a selector that resolves the origin address based on the incoming HTTP request.
      Parameters:
        `selector` - the selector
      Returns:
        a reference to this, so the API can be used fluently

    - #### originRequestProvider

          HttpProxy originRequestProvider(java.util.function.BiFunction<HttpServerRequest,HttpClient,Future<HttpClientRequest>> provider)

      Set a provider that creates the request to the origin server based the incoming HTTP request. Setting a provider overrides any origin selector previously set.
      Parameters:
        `provider` - the provider
      Returns:
        a reference to this, so the API can be used fluently

    - #### addInterceptor

          HttpProxy addInterceptor(ProxyInterceptor interceptor)

      Add an interceptor to the interceptor chain.
      Parameters:
        `interceptor` -
      Returns:
        a reference to this, so the API can be used fluently

    - #### handle

          void handle(HttpServerRequest request)

      Handle the outbound `HttpServerRequest`.
      Specified by:
        `handle` in interface `Handler<HttpServerRequest>`
      Parameters:
        `request` - the outbound `HttpServerRequest`

Copyright © 2023 Eclipse. All rights reserved.