Interface Router

All Superinterfaces:
Handler<HttpServerRequest>

public interface Router extends Handler<HttpServerRequest>
A router receives request from an HttpServer and routes it to the first matching Route that it contains. A router can contain many routes.

Routers are also used for routing failures.

Author:
Tim Fox
  • Method Details

    • putMetadata

      Router putMetadata(String key, Object value)
      Put metadata to this router. Used for saved extra data. Remove the existing value if value is null.
      Parameters:
      key - the metadata of key
      value - the metadata of value
      Returns:
      a reference to this, so the API can be used fluently
    • metadata

      Map<String,Object> metadata()
      Returns:
      the metadata of this router, never returns null.
    • getMetadata

      default <T> T getMetadata(String key)
      Get some data from metadata.
      Type Parameters:
      T - the type of the data
      Parameters:
      key - the key for the metadata
      Returns:
      the data
    • router

      static Router router(Vertx vertx)
      Create a router
      Parameters:
      vertx - the Vert.x instance
      Returns:
      the router
    • route

      Route route()
      Add a route with no matching criteria, i.e. it matches all requests or failures.
      Returns:
      the route
    • route

      Route route(HttpMethod method, String path)
      Add a route that matches the specified HTTP method and path
      Parameters:
      method - the HTTP method to match
      path - URI paths that begin with this path will match
      Returns:
      the route
    • route

      Route route(String path)
      Add a route that matches the specified path
      Parameters:
      path - URI paths that begin with this path will match
      Returns:
      the route
    • routeWithRegex

      Route routeWithRegex(HttpMethod method, String regex)
      Add a route that matches the specified HTTP method and path regex
      Parameters:
      method - the HTTP method to match
      regex - URI paths that begin with a match for this regex will match
      Returns:
      the route
    • routeWithRegex

      Route routeWithRegex(String regex)
      Add a route that matches the specified path regex
      Parameters:
      regex - URI paths that begin with a match for this regex will match
      Returns:
      the route
    • get

      Route get()
      Add a route that matches any HTTP GET request
      Returns:
      the route
    • get

      Route get(String path)
      Add a route that matches a HTTP GET request and the specified path
      Parameters:
      path - URI paths that begin with this path will match
      Returns:
      the route
    • getWithRegex

      Route getWithRegex(String regex)
      Add a route that matches a HTTP GET request and the specified path regex
      Parameters:
      regex - URI paths that begin with a match for this regex will match
      Returns:
      the route
    • head

      Route head()
      Add a route that matches any HTTP HEAD request
      Returns:
      the route
    • head

      Route head(String path)
      Add a route that matches a HTTP HEAD request and the specified path
      Parameters:
      path - URI paths that begin with this path will match
      Returns:
      the route
    • headWithRegex

      Route headWithRegex(String regex)
      Add a route that matches a HTTP HEAD request and the specified path regex
      Parameters:
      regex - URI paths that begin with a match for this regex will match
      Returns:
      the route
    • options

      Route options()
      Add a route that matches any HTTP OPTIONS request
      Returns:
      the route
    • options

      Route options(String path)
      Add a route that matches a HTTP OPTIONS request and the specified path
      Parameters:
      path - URI paths that begin with this path will match
      Returns:
      the route
    • optionsWithRegex

      Route optionsWithRegex(String regex)
      Add a route that matches a HTTP OPTIONS request and the specified path regex
      Parameters:
      regex - URI paths that begin with a match for this regex will match
      Returns:
      the route
    • put

      Route put()
      Add a route that matches any HTTP PUT request
      Returns:
      the route
    • put

      Route put(String path)
      Add a route that matches a HTTP PUT request and the specified path
      Parameters:
      path - URI paths that begin with this path will match
      Returns:
      the route
    • putWithRegex

      Route putWithRegex(String regex)
      Add a route that matches a HTTP PUT request and the specified path regex
      Parameters:
      regex - URI paths that begin with a match for this regex will match
      Returns:
      the route
    • post

      Route post()
      Add a route that matches any HTTP POST request
      Returns:
      the route
    • post

      Route post(String path)
      Add a route that matches a HTTP POST request and the specified path
      Parameters:
      path - URI paths that begin with this path will match
      Returns:
      the route
    • postWithRegex

      Route postWithRegex(String regex)
      Add a route that matches a HTTP POST request and the specified path regex
      Parameters:
      regex - URI paths that begin with a match for this regex will match
      Returns:
      the route
    • delete

      Route delete()
      Add a route that matches any HTTP DELETE request
      Returns:
      the route
    • delete

      Route delete(String path)
      Add a route that matches a HTTP DELETE request and the specified path
      Parameters:
      path - URI paths that begin with this path will match
      Returns:
      the route
    • deleteWithRegex

      Route deleteWithRegex(String regex)
      Add a route that matches a HTTP DELETE request and the specified path regex
      Parameters:
      regex - URI paths that begin with a match for this regex will match
      Returns:
      the route
    • trace

      Route trace()
      Add a route that matches any HTTP TRACE request
      Returns:
      the route
    • trace

      Route trace(String path)
      Add a route that matches a HTTP TRACE request and the specified path
      Parameters:
      path - URI paths that begin with this path will match
      Returns:
      the route
    • traceWithRegex

      Route traceWithRegex(String regex)
      Add a route that matches a HTTP TRACE request and the specified path regex
      Parameters:
      regex - URI paths that begin with a match for this regex will match
      Returns:
      the route
    • connect

      Route connect()
      Add a route that matches any HTTP CONNECT request
      Returns:
      the route
    • connect

      Route connect(String path)
      Add a route that matches a HTTP CONNECT request and the specified path
      Parameters:
      path - URI paths that begin with this path will match
      Returns:
      the route
    • connectWithRegex

      Route connectWithRegex(String regex)
      Add a route that matches a HTTP CONNECT request and the specified path regex
      Parameters:
      regex - URI paths that begin with a match for this regex will match
      Returns:
      the route
    • patch

      Route patch()
      Add a route that matches any HTTP PATCH request
      Returns:
      the route
    • patch

      Route patch(String path)
      Add a route that matches a HTTP PATCH request and the specified path
      Parameters:
      path - URI paths that begin with this path will match
      Returns:
      the route
    • patchWithRegex

      Route patchWithRegex(String regex)
      Add a route that matches a HTTP PATCH request and the specified path regex
      Parameters:
      regex - URI paths that begin with a match for this regex will match
      Returns:
      the route
    • getRoutes

      List<Route> getRoutes()
      Returns:
      a list of all the routes on this router
    • clear

      Router clear()
      Remove all the routes from this router
      Returns:
      a reference to this, so the API can be used fluently
    • errorHandler

      Router errorHandler(int statusCode, Handler<RoutingContext> errorHandler)
      Specify an handler to handle an error for a particular status code. You can use to manage general errors too using status code 500. The handler will be called when the context fails and other failure handlers didn't write the reply or when an exception is thrown inside an handler. You must not use RoutingContext.next() inside the error handler This does not affect the normal failure routing logic.
      Parameters:
      statusCode - status code the errorHandler is capable of handle
      errorHandler - error handler. Note: You must not use RoutingContext.next() inside the provided handler
      Returns:
      a reference to this, so the API can be used fluently
    • uncaughtErrorHandler

      Router uncaughtErrorHandler(Handler<RoutingContext> errorHandler)
      Specify an handler to handle an error for any status code that doesn't have a specific handler assigned. The handler will be called when the context fails and other failure handlers didn't write the reply or when an exception is thrown inside an handler. You must not use RoutingContext.next() inside the error handler This does not affect the normal failure routing logic.
      Parameters:
      errorHandler - error handler. Note: You must not use RoutingContext.next() inside the provided handler
      Returns:
      a reference to this, so the API can be used fluently
    • handleContext

      void handleContext(RoutingContext context)
      Used to route a context to the router. Used for sub-routers. You wouldn't normally call this method directly.
      Parameters:
      context - the routing context
    • handleFailure

      void handleFailure(RoutingContext context)
      Used to route a failure to the router. Used for sub-routers. You wouldn't normally call this method directly.
      Parameters:
      context - the routing context
    • modifiedHandler

      Router modifiedHandler(Handler<Router> handler)
      When a Router routes are changed this handler is notified. This is useful for routes that depend on the state of the router.
      Parameters:
      handler - a notification handler that will receive this router as argument
      Returns:
      a reference to this, so the API can be used fluently
    • allowForward

      Router allowForward(AllowForwardHeaders allowForwardHeaders)
      Set whether the router should parse "forwarded"-type headers
      Parameters:
      allowForwardHeaders - to enable parsing of "forwarded"-type headers
      Returns:
      a reference to this, so the API can be used fluently