org.apache.hc.core5.http.impl.routing

## Class RequestRouter.Builder<T>

- java.lang.Object
- - org.apache.hc.core5.http.impl.routing.RequestRouter.Builder<T>

- Enclosing class:
    RequestRouter<T>

      public static class RequestRouter.Builder<T>
      extends Object

- - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `RequestRouter.Builder<T>` | `addRoute(String hostname, String pathPattern, T handler)` Adds a route with given hostname and path pattern.
    `RequestRouter.Builder<T>` | `addRoute(URIAuthority authority, String pathPattern, T handler)` Adds a route with given authority and path pattern.
    `RequestRouter<T>` | `build()`
    `RequestRouter.Builder<T>` | `downstream(HttpRequestMapper<T> downstream)` Sets a downstream request mapper that can be used as a fallback in case no authoritative service can be found to handle an incoming request.
    `RequestRouter.Builder<T>` | `resolveAuthority(BiFunction<String,URIAuthority,URIAuthority> authorityResolver)` Sets custom `URIAuthority` resolution `Function` that can be used to normalize or re-write the authority specified in incoming requests prior to request routing.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### addRoute

          public RequestRouter.Builder<T> addRoute(URIAuthority authority,
                                                   String pathPattern,
                                                   T handler)

      Adds a route with given authority and path pattern. Requests with the same authority and matching the path pattern will be routed for execution to the handler.

    - #### addRoute

          public RequestRouter.Builder<T> addRoute(String hostname,
                                                   String pathPattern,
                                                   T handler)

      Adds a route with given hostname and path pattern. Requests with the same hostname and matching the path pattern will be routed for execution to the handler.

    - #### resolveAuthority

          public RequestRouter.Builder<T> resolveAuthority(BiFunction<String,URIAuthority,URIAuthority> authorityResolver)

      Sets custom `URIAuthority` resolution `Function` that can be used to normalize or re-write the authority specified in incoming requests prior to request routing. The function can return a new `URIAuthority` instance representing an identity of the service authoritative to handle the request or `null` if an authoritative service cannot be found or is unknown.

    - #### downstream

          public RequestRouter.Builder<T> downstream(HttpRequestMapper<T> downstream)

      Sets a downstream request mapper that can be used as a fallback in case no authoritative service can be found to handle an incoming request. Using this method request mappers can be linked to form a chain of responsibility, with each link representing a different authority.

    - #### build

          public RequestRouter<T> build()

Copyright © 2005–2021 The Apache Software Foundation. All rights reserved.