Availability:
:- use_module(library(http/http_dispatch)).
- Find a matching handler based on the
path
member of Request. If multiple handlers match due to theprefix
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 throwpermission_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.