mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-15 04:30:25 +00:00
48 lines
1.2 KiB
Text
48 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}
|
||
|
| {halt, 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 `halt` 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.
|