cowboy_router ============= The `cowboy_router` middleware maps the requested host and path to the handler to be used for processing the request. It uses the dispatch rules compiled from the routes given to the `compile/1` function for this purpose. It adds the handler name and options to the environment as the values `handler` and `handler_opts` respectively. Environment input: * dispatch = dispatch_rules() Environment output: * handler = module() * handler_opts = any() Types ----- ### bindings() = [{atom(), binary()}] > List of bindings found during routing. ### constraints() = [IntConstraint | FunConstraint] > Types: > * IntConstraint = {atom(), int} > * FunConstraint = {atom(), function, Fun} > * Fun = fun((binary()) -> true | {true, any()} | false) > > List of constraints to apply to the bindings. > > The int constraint will convert the binding to an integer. > The fun constraint allows writing custom code for checking > the bindings. Returning a new value from that fun allows > replacing the current binding with a new value. ### dispatch_rules() - opaque to the user > Rules for dispatching request used by Cowboy. ### routes() = [{Host, Paths} | {Host, constraints(), Paths}] > Types: > * Host = Path = '_' | iodata() > * Paths = [{Path, Handler, Opts} | {Path, constraints(), Handler, Opts}] > * Handler = module() > * Opts = any() > > Human readable list of routes mapping hosts and paths to handlers. > > The syntax for routes is defined in the user guide. ### tokens() = [binary()] > List of host_info and path_info tokens found during routing. Exports ------- ### compile(Routes) -> Dispatch > Types: > * Routes = routes() > * Dispatch = dispatch_rules() > > Compile the routes for use by Cowboy.