= cowboy(3)
== Name
cowboy - HTTP server
== Description
The `cowboy` module provides convenience functions for
manipulating Ranch listeners.
== Types
=== fields() = [Field]
[source,erlang]
----
Field = atom()
| {atom(), cowboy_constraints:constraint() | [cowboy_constraints:constraint()]}
| {atom(), cowboy_constraints:constraint() | [cowboy_constraints:constraint()], any()}]
----
Fields for match operations. Constraint(s) and default value are optional.
=== http_headers() = [{binary(), iodata()}]
HTTP headers as a list of key/values.
=== http_status() = non_neg_integer() | binary()
HTTP status.
A binary status can be used to set a custom message.
=== http_version() = \'HTTP/1.1' | \'HTTP/1.0'
HTTP version.
=== `onresponse_fun() = fun((http_status(), http_headers(), iodata(), cowboy_req:req()) -> cowboy_req:req())`
Fun called immediately before sending the response.
It can perform any operation on the Req object, including
reading the request body or replying. If a reply is sent, it
overrides the reply initially sent. The callback will not be
called again for the new reply.
== Exports
=== start_http(Ref, NbAcceptors, TransOpts, ProtoOpts) -> {ok, pid()}
Ref = ranch:ref():: Listener name.
NbAcceptors = non_neg_integer():: Number of acceptor processes.
TransOpts = ranch_tcp:opts():: TCP transport options.
ProtoOpts = cowboy_protocol:opts():: HTTP protocol options.
Start listening for HTTP connections. Returns the pid for this
listener's supervisor.
=== start_https(Ref, NbAcceptors, TransOpts, ProtoOpts) -> {ok, pid()}
Ref = ranch:ref():: Listener name.
NbAcceptors = non_neg_integer():: Number of acceptor processes.
TransOpts = ranch_ssl:opts():: SSL transport options.
ProtoOpts = cowboy_protocol:opts():: HTTP protocol options.
Start listening for HTTPS connections. Returns the pid for this
listener's supervisor.
=== stop_listener(Ref) -> ok | {error, not_found}
Ref = ranch:ref():: Listener name.
Stop a previously started listener.
=== set_env(Ref, Name, Value) -> ok
Ref = ranch:ref():: Listener name.
Name = atom():: Name of environment value.
Value = any():: Environment value.
Set or update an environment value for an already running listener.
This will take effect on all subsequent connections.
== See also
The http://ninenines.eu/docs/en/ranch/HEAD/guide[Ranch guide]
provides detailed information about how listeners work.