0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-15 04:30:25 +00:00
cowboy/doc/src/manual/cowboy_middleware.ezdoc
Loïc Hoguin 999dc5b7c1 Rename 'halt' to 'stop' for better consistency
Now everywhere in Cowboy when we want to stop something we return
a 'stop' tuple instead of one of the many choices depending on
context that we had before.

This particular change affects middlewares, sub protocols and
REST handlers which were using 'halt' to stop processing.
2014-11-07 20:19:05 +02:00

47 lines
1.2 KiB
Text

::: cowboy_middleware
The `cowboy_middleware` behaviour defines the interface used
by Cowboy middleware modules.
Middlewares process the request sequentially in the order they
are configured.
:: Types
: env() = [{atom(), any()}]
The environment variable.
One is created for every request. It is passed to each
middleware module executed and subsequently returned,
optionally with its contents modified.
:: Callbacks
: execute(Req, Env)
-> {ok, Req, Env}
| {suspend, Module, Function, Args}
| {stop, Req}
Types:
* Req = cowboy_req:req()
* Env = env()
* Module = module()
* Function = atom()
* Args = [any()]
Execute the middleware.
The `ok` return value indicates that everything went well
and that Cowboy should continue processing the request. A
response may or may not have been sent.
The `suspend` return value will hibernate the process until
an Erlang message is received. Note that when resuming, any
previous stacktrace information will be gone.
The `stop` return value stops Cowboy from doing any further
processing of the request, even if there are middlewares
that haven't been executed yet. The connection may be left
open to receive more requests from the client.