diff options
author | Loïc Hoguin <[email protected]> | 2013-05-17 13:13:27 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2013-05-17 13:13:27 +0200 |
commit | 666c59bc422172562673916ed3a8a796c4f9fbf4 (patch) | |
tree | f561151846de077513fa767edc10165a469d09ef /manual/cowboy_middleware.md | |
parent | 0e0ec7b1203a8490ee9a876f9274fe0c64e708f8 (diff) | |
download | cowboy-666c59bc422172562673916ed3a8a796c4f9fbf4.tar.gz cowboy-666c59bc422172562673916ed3a8a796c4f9fbf4.tar.bz2 cowboy-666c59bc422172562673916ed3a8a796c4f9fbf4.zip |
Add the Cowboy Function Reference
The manual details every stable public functions of Cowboy.
Diffstat (limited to 'manual/cowboy_middleware.md')
-rw-r--r-- | manual/cowboy_middleware.md | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/manual/cowboy_middleware.md b/manual/cowboy_middleware.md new file mode 100644 index 0000000..dd28ff8 --- /dev/null +++ b/manual/cowboy_middleware.md @@ -0,0 +1,56 @@ +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} + | {error, StatusCode, Req} + +> Types: +> * Req = cowboy_req:req() +> * Env = env() +> * Module = module() +> * Function = atom() +> * Args = [any()] +> * StatusCode = cowboy:http_status() +> +> 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. +> +> The `error` return value sends an error response identified +> by the `StatusCode` and then proceeds to terminate the +> connection. Middlewares that haven't been executed yet +> will not be called. |