From 666c59bc422172562673916ed3a8a796c4f9fbf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Fri, 17 May 2013 13:13:27 +0200 Subject: Add the Cowboy Function Reference The manual details every stable public functions of Cowboy. --- manual/cowboy_middleware.md | 56 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 manual/cowboy_middleware.md (limited to 'manual/cowboy_middleware.md') 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. -- cgit v1.2.3