Class RequestRouter.Builder<T>

  • Enclosing class:
    RequestRouter<T>

    public static class RequestRouter.Builder<T>
    extends java.lang.Object
    • Method Detail

      • addRoute

        public RequestRouter.Builder<T> addRoute​(URIAuthority authority,
                                                 java.lang.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​(java.lang.String hostname,
                                                 java.lang.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​(java.util.function.BiFunction<java.lang.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.