Module io.inverno.mod.web.server
Package io.inverno.mod.web.server.spi
Interface Router<A extends ExchangeContext,B extends Exchange<A>,C extends Router<A,B,C,D,E,F,G,H>,D extends InterceptedRouter<A,B,C,D,E,F,G,H>,E extends RouteManager<A,B,C,E,H>,F extends RouteManager<A,B,D,F,H>,G extends InterceptorManager<A,B,D,G>,H extends InterceptableRoute<A,B>>
- Type Parameters:
A
- the type of the exchange contextB
- the type of exchange handled by the routeC
- the router typeD
- the intercepted router typeE
- the route manager typeF
- the intercepted route manager typeG
- the interceptor manager typeH
- the interceptable route type
- All Superinterfaces:
ExchangeHandler<A,
,Exchange<A>> Interceptable<A,
,B, D, G> ReactiveExchangeHandler<A,
,Exchange<A>> Routable<A,
B, C, E, H>
- All Known Subinterfaces:
WebRouter<A>
public interface Router<A extends ExchangeContext,B extends Exchange<A>,C extends Router<A,B,C,D,E,F,G,H>,D extends InterceptedRouter<A,B,C,D,E,F,G,H>,E extends RouteManager<A,B,C,E,H>,F extends RouteManager<A,B,D,F,H>,G extends InterceptorManager<A,B,D,G>,H extends InterceptableRoute<A,B>>
extends Routable<A,B,C,E,H>, Interceptable<A,B,D,G>, ExchangeHandler<A,Exchange<A>>
Base router interface.
A router uses route definitions to determine the exchange handler to invoke in order to process a request.
Routes are defined in the router using a route manager that allows to specify route criteria and eventually the exchange handler to invoke to process a request that matches the criteria.
A router is itself an exchange handler that implements a routing logic to delegate the actual exchange processing to the exchange handler defined in the route matching the original request. A router is typically used as root handler in a HTTP server.
- Since:
- 1.0
- Author:
- Jeremy Kuhn
- See Also:
-
Method Summary
Methods inherited from interface io.inverno.mod.http.server.ExchangeHandler
defer, handle
Methods inherited from interface io.inverno.mod.web.server.spi.Interceptable
intercept, intercept
Methods inherited from interface io.inverno.mod.http.server.ReactiveExchangeHandler
intercept