mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-15 04:30:25 +00:00
Add man pages for the reply functions
This commit is contained in:
parent
f57dd51e0f
commit
ba14cf7838
12 changed files with 840 additions and 3 deletions
107
doc/src/manual/cowboy_req.stream_reply.asciidoc
Normal file
107
doc/src/manual/cowboy_req.stream_reply.asciidoc
Normal file
|
@ -0,0 +1,107 @@
|
|||
= cowboy_req:stream_reply(3)
|
||||
|
||||
== Name
|
||||
|
||||
cowboy_req:stream_reply - Send the response headers
|
||||
|
||||
== Description
|
||||
|
||||
[source,erlang]
|
||||
----
|
||||
stream_reply(Status, Req :: cowboy_req:req())
|
||||
-> stream_reply(StatusCode, #{}, Req)
|
||||
|
||||
stream_reply(Status, Headers, Req :: cowboy_req:req())
|
||||
-> Req
|
||||
|
||||
Status :: cowboy:http_status()
|
||||
Headers :: cowboy:http_headers()
|
||||
----
|
||||
|
||||
Send the response headers.
|
||||
|
||||
The header names must be given as lowercase binary strings.
|
||||
While header names are case insensitive, Cowboy requires them
|
||||
to be given as lowercase to function properly.
|
||||
|
||||
Cowboy does not allow duplicate header names. Headers set
|
||||
by this function may overwrite those set by `set_resp_header/3`.
|
||||
|
||||
Use link:man:cowboy_req:set_resp_cookie(3)[cowboy_req:set_resp_cookie(3)]
|
||||
instead of this function to set cookies.
|
||||
|
||||
If a response body was set before calling this function,
|
||||
it will not be sent.
|
||||
|
||||
Use link:man:cowboy_req:stream_body(3)[cowboy_req:stream_body(3)]
|
||||
to stream the response body.
|
||||
|
||||
You may want to set the content-length header when using
|
||||
this function, if it is known in advance. This will allow
|
||||
clients using HTTP/2 and HTTP/1.0 to process the response
|
||||
more efficiently.
|
||||
|
||||
The streaming method varies depending on the protocol being
|
||||
used. HTTP/2 will use the usual DATA frames. HTTP/1.1 will
|
||||
use chunked transfer-encoding. HTTP/1.0 will send the body
|
||||
unmodified and close the connection at the end if no
|
||||
content-length was set.
|
||||
|
||||
It is not possible to push resources after this function
|
||||
returns. Any attempt will result in an error.
|
||||
|
||||
== Arguments
|
||||
|
||||
Status::
|
||||
|
||||
The status code for the response.
|
||||
|
||||
Headers::
|
||||
|
||||
The response headers.
|
||||
|
||||
Header names must be given as lowercase binary strings.
|
||||
|
||||
Req::
|
||||
|
||||
The Req object.
|
||||
|
||||
== Return value
|
||||
|
||||
A new Req object is returned.
|
||||
|
||||
The returned Req object must be used from that point onward
|
||||
in order to be able to stream the response body.
|
||||
|
||||
== Changelog
|
||||
|
||||
* *2.0*: Only the Req is returned, it is no longer wrapped in a tuple.
|
||||
* *2.0*: Function introduced. Replaces `chunked_reply/1,2`.
|
||||
|
||||
== Examples
|
||||
|
||||
.Initiate the response
|
||||
[source,erlang]
|
||||
----
|
||||
Req = cowboy_req:stream_reply(200, Req0).
|
||||
----
|
||||
|
||||
.Stream the response with custom headers
|
||||
[source,erlang]
|
||||
----
|
||||
Req = cowboy_req:stream_reply(200, #{
|
||||
<<"content-type">> => <<"text/plain">>
|
||||
}, Req0),
|
||||
cowboy_req:stream_body(<<"Hello\n">>, nofin, Req),
|
||||
timer:sleep(1000),
|
||||
cowboy_req:stream_body(<<"World!\n">>, fin, Req).
|
||||
----
|
||||
|
||||
== See also
|
||||
|
||||
link:man:cowboy_req(3)[cowboy_req(3)],
|
||||
link:man:cowboy_req:set_resp_cookie(3)[cowboy_req:set_resp_cookie(3)],
|
||||
link:man:cowboy_req:set_resp_header(3)[cowboy_req:set_resp_header(3)],
|
||||
link:man:cowboy_req:reply(3)[cowboy_req:reply(3)],
|
||||
link:man:cowboy_req:stream_body(3)[cowboy_req:stream_body(3)],
|
||||
link:man:cowboy_req:push(3)[cowboy_req:push(3)]
|
Loading…
Add table
Add a link
Reference in a new issue