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_http_handler.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_http_handler.md')
-rw-r--r-- | manual/cowboy_http_handler.md | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/manual/cowboy_http_handler.md b/manual/cowboy_http_handler.md new file mode 100644 index 0000000..9d283e7 --- /dev/null +++ b/manual/cowboy_http_handler.md @@ -0,0 +1,57 @@ +cowboy_http_handler +=================== + +The `cowboy_http_handler` behaviour defines the interface used +by plain HTTP handlers. + +Unless noted otherwise, the callbacks will be executed sequentially. + +Types +----- + +None. + +Callbacks +--------- + +### init({TransportName, ProtocolName}, Req, Opts) + -> {ok, Req, State} | {shutdown, Req, State} + +> Types: +> * TransportName = tcp | ssl | atom() +> * ProtocolName = http | atom() +> * Req = cowboy_req:req() +> * Opts = any() +> * State = any() +> +> Initialize the state for this request. +> +> The `shutdown` return value can be used to skip the `handle/2` +> call entirely. + +### handle(Req, State) -> {ok, Req, State} + +> Types: +> * Req = cowboy_req:req() +> * State = any() +> +> Handle the request. +> +> This callback is where the request is handled and a response +> should be sent. If a response is not sent, Cowboy will send +> a `204 No Content` response automatically. + +### terminate(Reason, Req, State) -> ok + +> Types: +> * Reason = {normal, shutdown} | {error, atom()} +> * Req = cowboy_req:req() +> * State = any() +> +> Perform any necessary cleanup of the state. +> +> This callback should release any resource currently in use, +> clear any active timer and reset the process to its original +> state, as it might be reused for future requests sent on the +> same connection. Typical plain HTTP handlers rarely need to +> use it. |