cowboy_router(3)

NAME

cowboy_router - Router middleware

DESCRIPTION

The cowboy_router middleware maps the requested host and path to the handler to be used for processing the request.

The router takes the dispatch rules as input from the middleware environment. Dispatch rules are generated by calling the cowboy_router:compile(3) function. The environment can contain the rules directly or a tuple {persistent_term, Key}, in which case Cowboy will call persistent_term:get(Key) to retrieve the dispatch rules.

When a route matches, the router sets the handler and handler_opts middleware environment values containing the handler module and initial state, respectively.

The router will stop execution when no route matches. It will send a 400 response if no host was found, and a 404 response otherwise.

EXPORTS
    • cowboy_router:compile(3) - Compile routes to the resources

TYPES

  bindings()
    bindings() :: #{atom() => any()}

Bindings found during routing.

  dispatch_rules()

Opaque type containing the compiled routes.

  routes()
    routes() = [
        {Host, PathList} |
        {Host, Fields, PathList}
    ]

    PathList :: [
        {Path, Handler, InitialState} |
        {Path, Fields, Handler, InitialState}
    ]

    Host         :: '_' | iodata()
    Path         :: '_' | iodata()
    Fields       :: cowboy:fields()
    Handler      :: module()
    InitialState :: any()

Human readable list of routes to handlers.

Cowboy uses this list to map hosts and paths, optionally augmented with constraints applied to the bindings, to handler modules.

The syntax for routes is currently defined in the user guide.

  tokens()
    tokens() :: [binary()]

List of host_info and path_info tokens that were found using the ... syntax.

SEE ALSO

cowboy(7), cowboy_req:binding(3), cowboy_req:bindings(3), cowboy_req:host_info(3), cowboy_req:path_info(3)