mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-15 04:30:25 +00:00

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.
47 lines
1.2 KiB
Text
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.
|