aboutsummaryrefslogtreecommitdiffstats
path: root/doc/src/manual/cowboy_middleware.asciidoc
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2016-01-14 13:35:25 +0100
committerLoïc Hoguin <[email protected]>2016-01-14 13:37:20 +0100
commit4023e7f4e429179fd9c2cce4487c33646c6bd327 (patch)
tree3c4e26d1b5592958e35297c82ad3069bdb642594 /doc/src/manual/cowboy_middleware.asciidoc
parentb7d666cfc746f55b0a72ef8d37f703885099daf7 (diff)
downloadcowboy-4023e7f4e429179fd9c2cce4487c33646c6bd327.tar.gz
cowboy-4023e7f4e429179fd9c2cce4487c33646c6bd327.tar.bz2
cowboy-4023e7f4e429179fd9c2cce4487c33646c6bd327.zip
Convert the documentation to Asciidoc
A few small revisions were made, and Erlang.mk has been updated.
Diffstat (limited to 'doc/src/manual/cowboy_middleware.asciidoc')
-rw-r--r--doc/src/manual/cowboy_middleware.asciidoc48
1 files changed, 48 insertions, 0 deletions
diff --git a/doc/src/manual/cowboy_middleware.asciidoc b/doc/src/manual/cowboy_middleware.asciidoc
new file mode 100644
index 0000000..87cd5d2
--- /dev/null
+++ b/doc/src/manual/cowboy_middleware.asciidoc
@@ -0,0 +1,48 @@
+= cowboy_middleware(3)
+
+== Name
+
+cowboy_middleware - behaviour for middlewares
+
+== Description
+
+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}
+
+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.
+
+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.