aboutsummaryrefslogtreecommitdiffstats
path: root/manual/cowboy_http_handler.md
diff options
context:
space:
mode:
Diffstat (limited to 'manual/cowboy_http_handler.md')
-rw-r--r--manual/cowboy_http_handler.md57
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.