2016-01-14 13:35:25 +01:00
|
|
|
= cowboy_middleware(3)
|
|
|
|
|
|
|
|
== Name
|
|
|
|
|
|
|
|
cowboy_middleware - behaviour for middlewares
|
|
|
|
|
|
|
|
== Description
|
2014-07-06 13:10:35 +02:00
|
|
|
|
|
|
|
The `cowboy_middleware` behaviour defines the interface used
|
|
|
|
by Cowboy middleware modules.
|
|
|
|
|
|
|
|
Middlewares process the request sequentially in the order they
|
|
|
|
are configured.
|
|
|
|
|
2016-01-14 13:35:25 +01:00
|
|
|
== Types
|
2014-07-06 13:10:35 +02:00
|
|
|
|
2016-01-14 13:35:25 +01:00
|
|
|
=== env() = [{atom(), any()}]
|
2014-07-06 13:10:35 +02:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2016-01-14 13:35:25 +01:00
|
|
|
== Callbacks
|
2014-07-06 13:10:35 +02:00
|
|
|
|
2016-01-14 13:35:25 +01:00
|
|
|
=== execute(Req, Env) -> {ok, Req, Env} | {suspend, Module, Function, Args} | {stop, Req}
|
2014-07-06 13:10:35 +02:00
|
|
|
|
2016-01-14 13:35:25 +01:00
|
|
|
Req = cowboy_req:req():: The Req object.
|
|
|
|
Env = env():: The request environment.
|
|
|
|
Module = module():: MFA to call when resuming the process.
|
|
|
|
Function = atom():: MFA to call when resuming the process.
|
|
|
|
Args = [any()]:: MFA to call when resuming the process.
|
2014-07-06 13:10:35 +02:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2014-11-07 20:19:05 +02:00
|
|
|
The `stop` return value stops Cowboy from doing any further
|
2014-07-06 13:10:35 +02:00
|
|
|
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.
|