- http_dispatch(Request) is det
- Dispatch a Request using http_handler/3 registrations. It performs
the following steps:
- Find a matching handler based on the
path
member of Request.
If multiple handlers match due to the prefix
option or
variables in path segments (see http_handler/3), the longest
specification is used. If multiple specifications of equal
length match the one with the highest priority is used.
- Check that the handler matches the
method
member of the
Request or throw permission_error(http_method, Method, Location)
- Expand the request using expansion hooks registered by
http_request_expansion/3. This may add fields to the request,
such the authenticated user, parsed parameters, etc. The
hooks may also throw exceptions, notably using http_redirect/3
or by throwing
http_reply(Term, ExtraHeader, Context)
exceptions.
- Extract possible fields from the Request using e.g.
method(Method)
as one of the options.
- Call the registered closure, optionally spawning the
request to a new thread or enforcing a time limit.