diff options
Diffstat (limited to 'docs/en/cowboy/2.3/manual/cowboy_req.uri')
-rw-r--r-- | docs/en/cowboy/2.3/manual/cowboy_req.uri/index.html | 199 |
1 files changed, 64 insertions, 135 deletions
diff --git a/docs/en/cowboy/2.3/manual/cowboy_req.uri/index.html b/docs/en/cowboy/2.3/manual/cowboy_req.uri/index.html index 90a435e3..73ab872d 100644 --- a/docs/en/cowboy/2.3/manual/cowboy_req.uri/index.html +++ b/docs/en/cowboy/2.3/manual/cowboy_req.uri/index.html @@ -62,177 +62,106 @@ <h1 class="lined-header"><span>cowboy_req:uri(3)</span></h1> -<div class="sect1"> <h2 id="_name">Name</h2> -<div class="sectionbody"> -<div class="paragraph"><p>cowboy_req:uri - Reconstructed URI</p></div> -</div> -</div> -<div class="sect1"> +<p>cowboy_req:uri - Reconstructed URI</p> <h2 id="_description">Description</h2> -<div class="sectionbody"> -<div class="listingblock"> -<div class="content"><!-- Generator: GNU source-highlight +<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><tt><span style="font-weight: bold"><span style="color: #000000">uri</span></span>(<span style="color: #009900">Req</span> <span style="color: #990000">::</span> <span style="font-weight: bold"><span style="color: #000000">cowboy_req:req</span></span>()) <span style="color: #990000">-></span> <span style="font-weight: bold"><span style="color: #000000">uri</span></span>(<span style="color: #009900">Req</span>, #{}) -<span style="font-weight: bold"><span style="color: #000000">uri</span></span>(<span style="color: #009900">Req</span> <span style="color: #990000">::</span> <span style="font-weight: bold"><span style="color: #000000">cowboy_req:req</span></span>(), <span style="color: #009900">Opts</span>) <span style="color: #990000">-></span> <span style="color: #009900">URI</span> <span style="color: #990000">::</span> <span style="font-weight: bold"><span style="color: #000000">iodata</span></span>() - -<span style="color: #009900">Opts</span> <span style="color: #990000">::</span> #{ - <span style="color: #0000FF">scheme</span> <span style="color: #990000">=></span> <span style="font-weight: bold"><span style="color: #000000">iodata</span></span>() | <span style="color: #000080">undefined</span>, - <span style="color: #0000FF">host</span> <span style="color: #990000">=></span> <span style="font-weight: bold"><span style="color: #000000">iodata</span></span>() | <span style="color: #000080">undefined</span>, - <span style="color: #0000FF">port</span> <span style="color: #990000">=></span> <span style="font-weight: bold"><span style="color: #000000">inet:port_number</span></span>() | <span style="color: #000080">undefined</span>, - <span style="color: #0000FF">path</span> <span style="color: #990000">=></span> <span style="font-weight: bold"><span style="color: #000000">iodata</span></span>() | <span style="color: #000080">undefined</span>, - <span style="color: #0000FF">qs</span> <span style="color: #990000">=></span> <span style="font-weight: bold"><span style="color: #000000">iodata</span></span>() | <span style="color: #000080">undefined</span>, - <span style="color: #0000FF">fragment</span> <span style="color: #990000">=></span> <span style="font-weight: bold"><span style="color: #000000">iodata</span></span>() | <span style="color: #000080">undefined</span> -}</tt></pre></div></div> -<div class="paragraph"><p>Reconstruct the effective request URI, optionally modifying components.</p></div> -<div class="paragraph"><p>By default Cowboy will build a URI using the components found -in the request. Options allow disabling or replacing individual -components.</p></div> -</div> -</div> -<div class="sect1"> +<pre><tt><b><font color="#000000">uri</font></b>(<font color="#009900">Req</font> <font color="#990000">::</font> <b><font color="#000000">cowboy_req:req</font></b>()) <font color="#990000">-></font> <b><font color="#000000">uri</font></b>(<font color="#009900">Req</font>, #{}) +<b><font color="#000000">uri</font></b>(<font color="#009900">Req</font> <font color="#990000">::</font> <b><font color="#000000">cowboy_req:req</font></b>(), <font color="#009900">Opts</font>) <font color="#990000">-></font> <font color="#009900">URI</font> <font color="#990000">::</font> <b><font color="#000000">iodata</font></b>() + +<font color="#009900">Opts</font> <font color="#990000">::</font> #{ + <font color="#0000FF">scheme</font> <font color="#990000">=></font> <b><font color="#000000">iodata</font></b>() | <font color="#000080">undefined</font>, + <font color="#0000FF">host</font> <font color="#990000">=></font> <b><font color="#000000">iodata</font></b>() | <font color="#000080">undefined</font>, + <font color="#0000FF">port</font> <font color="#990000">=></font> <b><font color="#000000">inet:port_number</font></b>() | <font color="#000080">undefined</font>, + <font color="#0000FF">path</font> <font color="#990000">=></font> <b><font color="#000000">iodata</font></b>() | <font color="#000080">undefined</font>, + <font color="#0000FF">qs</font> <font color="#990000">=></font> <b><font color="#000000">iodata</font></b>() | <font color="#000080">undefined</font>, + <font color="#0000FF">fragment</font> <font color="#990000">=></font> <b><font color="#000000">iodata</font></b>() | <font color="#000080">undefined</font> +}</tt></pre> +</div></div> +<p>Reconstruct the effective request URI, optionally modifying components.</p> +<p>By default Cowboy will build a URI using the components found in the request. Options allow disabling or replacing individual components.</p> <h2 id="_arguments">Arguments</h2> -<div class="sectionbody"> -<div class="dlist"><dl> -<dt class="hdlist1"> -Req -</dt> -<dd> -<p> -The Req object. -</p> +<dl><dt>Req</dt> +<dd><p>The Req object.</p> </dd> -<dt class="hdlist1"> -Opts -</dt> -<dd> -<p> -Map for overriding individual components. -</p> -<div class="paragraph"><p>To replace a component, provide its new value as a binary -string or an iolist. To disable a component, set its value -to <code>undefined</code>.</p></div> -<div class="paragraph"><p>As this function always returns a valid URI, there are some -things to note:</p></div> -<div class="ulist"><ul> -<li> -<p> -Disabling the host also disables the scheme and port. -</p> +<dt>Opts</dt> +<dd><p>Map for overriding individual components.</p> +<p>To replace a component, provide its new value as a binary string or an iolist. To disable a component, set its value to <code>undefined</code>.</p> +<p>As this function always returns a valid URI, there are some things to note:</p> +<ul><li>Disabling the host also disables the scheme and port. </li> -<li> -<p> -There is no fragment component by default as these are - not sent with the request. -</p> +<li>There is no fragment component by default as these are not sent with the request. </li> -<li> -<p> -The port number may not appear in the resulting URI if - it is the default port for the given scheme (http: 80; https: 443). -</p> +<li>The port number may not appear in the resulting URI if it is the default port for the given scheme (http: 80; https: 443). </li> -</ul></div> +</ul> </dd> -</dl></div> -</div> -</div> -<div class="sect1"> +</dl> <h2 id="_return_value">Return value</h2> -<div class="sectionbody"> -<div class="paragraph"><p>The reconstructed URI is returned as an iolist or a binary string.</p></div> -</div> -</div> -<div class="sect1"> +<p>The reconstructed URI is returned as an iolist or a binary string.</p> <h2 id="_changelog">Changelog</h2> -<div class="sectionbody"> -<div class="ulist"><ul> -<li> -<p> -<strong>2.0</strong>: Individual components can be replaced or disabled. -</p> +<ul><li><strong>2.0</strong>: Individual components can be replaced or disabled. </li> -<li> -<p> -<strong>2.0</strong>: Only the URI is returned, it is no longer wrapped in a tuple. -</p> +<li><strong>2.0</strong>: Only the URI is returned, it is no longer wrapped in a tuple. </li> -<li> -<p> -<strong>2.0</strong>: Function introduced. Replaces <code>host_url/1</code> and <code>url/1</code>. -</p> +<li><strong>2.0</strong>: Function introduced. Replaces <code>host_url/1</code> and <code>url/1</code>. </li> -</ul></div> -</div> -</div> -<div class="sect1"> +</ul> <h2 id="_examples">Examples</h2> -<div class="sectionbody"> -<div class="paragraph"><p>With an effective request URI <a href="http://example.org/path/to/res?edit=1">http://example.org/path/to/res?edit=1</a> -we can have:</p></div> -<div class="listingblock"> -<div class="title">Protocol relative form</div> -<div class="content"><!-- Generator: GNU source-highlight +<p>With an effective request URI <a href="http://example.org/path/to/res?edit=1">http://example.org/path/to/res?edit=1</a> we can have:</p> +<div class="listingblock"><div class="title">Protocol relative form</div> +<div class="content"><!-- Generator: GNU source-highlight 3.1.8 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><tt><span style="font-style: italic"><span style="color: #9A1900">%% //example.org/path/to/res?edit=1</span></span> -<span style="font-weight: bold"><span style="color: #000000">cowboy_req:uri</span></span>(<span style="color: #009900">Req</span>, #{<span style="color: #0000FF">scheme</span> <span style="color: #990000">=></span> <span style="color: #000080">undefined</span>})<span style="color: #990000">.</span></tt></pre></div></div> -<div class="listingblock"> -<div class="title">Serialized origin for use in the origin header</div> -<div class="content"><!-- Generator: GNU source-highlight +<pre><tt><i><font color="#9A1900">%% //example.org/path/to/res?edit=1</font></i> +<b><font color="#000000">cowboy_req:uri</font></b>(<font color="#009900">Req</font>, #{<font color="#0000FF">scheme</font> <font color="#990000">=></font> <font color="#000080">undefined</font>})<font color="#990000">.</font></tt></pre> +</div></div> +<div class="listingblock"><div class="title">Serialized origin for use in the origin header</div> +<div class="content"><!-- Generator: GNU source-highlight 3.1.8 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><tt><span style="font-style: italic"><span style="color: #9A1900">%% </span></span><span style="text-decoration: underline"><span style="color: #0000FF">http://example.org</span></span> -<span style="font-weight: bold"><span style="color: #000000">cowboy_req:uri</span></span>(<span style="color: #009900">Req</span>, #{<span style="color: #0000FF">path</span> <span style="color: #990000">=></span> <span style="color: #000080">undefined</span>, <span style="color: #0000FF">qs</span> <span style="color: #990000">=></span> <span style="color: #000080">undefined</span>})<span style="color: #990000">.</span></tt></pre></div></div> -<div class="listingblock"> -<div class="title">HTTP/1.1 origin form (path and query string only)</div> -<div class="content"><!-- Generator: GNU source-highlight +<pre><tt><i><font color="#9A1900">%% </font></i><u><font color="#0000FF">http://example.org</font></u> +<b><font color="#000000">cowboy_req:uri</font></b>(<font color="#009900">Req</font>, #{<font color="#0000FF">path</font> <font color="#990000">=></font> <font color="#000080">undefined</font>, <font color="#0000FF">qs</font> <font color="#990000">=></font> <font color="#000080">undefined</font>})<font color="#990000">.</font></tt></pre> +</div></div> +<div class="listingblock"><div class="title">HTTP/1.1 origin form (path and query string only)</div> +<div class="content"><!-- Generator: GNU source-highlight 3.1.8 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><tt><span style="font-style: italic"><span style="color: #9A1900">%% /path/to/res?edit=1</span></span> -<span style="font-weight: bold"><span style="color: #000000">cowboy_req:uri</span></span>(<span style="color: #009900">Req</span>, #{<span style="color: #0000FF">host</span> <span style="color: #990000">=></span> <span style="color: #000080">undefined</span>})<span style="color: #990000">.</span></tt></pre></div></div> -<div class="listingblock"> -<div class="title">Add a fragment to the URI</div> -<div class="content"><!-- Generator: GNU source-highlight +<pre><tt><i><font color="#9A1900">%% /path/to/res?edit=1</font></i> +<b><font color="#000000">cowboy_req:uri</font></b>(<font color="#009900">Req</font>, #{<font color="#0000FF">host</font> <font color="#990000">=></font> <font color="#000080">undefined</font>})<font color="#990000">.</font></tt></pre> +</div></div> +<div class="listingblock"><div class="title">Add a fragment to the URI</div> +<div class="content"><!-- Generator: GNU source-highlight 3.1.8 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><tt><span style="font-style: italic"><span style="color: #9A1900">%% </span></span><span style="text-decoration: underline"><span style="color: #0000FF">http://example.org/path/to/res</span></span><span style="font-style: italic"><span style="color: #9A1900">?edit=1#errors</span></span> -<span style="font-weight: bold"><span style="color: #000000">cowboy_req:uri</span></span>(<span style="color: #009900">Req</span>, #{<span style="color: #0000FF">fragment</span> <span style="color: #990000">=></span> <span style="color: #990000"><<</span><span style="color: #FF0000">"errors"</span><span style="color: #990000">>></span>})<span style="color: #990000">.</span></tt></pre></div></div> -<div class="listingblock"> -<div class="title">Ensure the scheme is HTTPS</div> -<div class="content"><!-- Generator: GNU source-highlight +<pre><tt><i><font color="#9A1900">%% </font></i><u><font color="#0000FF">http://example.org/path/to/res</font></u><i><font color="#9A1900">?edit=1#errors</font></i> +<b><font color="#000000">cowboy_req:uri</font></b>(<font color="#009900">Req</font>, #{<font color="#0000FF">fragment</font> <font color="#990000">=></font> <font color="#990000"><<</font><font color="#FF0000">"errors"</font><font color="#990000">>></font>})<font color="#990000">.</font></tt></pre> +</div></div> +<div class="listingblock"><div class="title">Ensure the scheme is HTTPS</div> +<div class="content"><!-- Generator: GNU source-highlight 3.1.8 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><tt><span style="font-style: italic"><span style="color: #9A1900">%% </span></span><span style="text-decoration: underline"><span style="color: #0000FF">https://example.org/path/to/res</span></span><span style="font-style: italic"><span style="color: #9A1900">?edit=1</span></span> -<span style="font-weight: bold"><span style="color: #000000">cowboy_req:uri</span></span>(<span style="color: #009900">Req</span>, #{<span style="color: #0000FF">scheme</span> <span style="color: #990000">=></span> <span style="color: #990000"><<</span><span style="color: #FF0000">"https"</span><span style="color: #990000">>></span>})<span style="color: #990000">.</span></tt></pre></div></div> -<div class="listingblock"> -<div class="title">Convert the URI to a binary string</div> -<div class="content"><!-- Generator: GNU source-highlight +<pre><tt><i><font color="#9A1900">%% </font></i><u><font color="#0000FF">https://example.org/path/to/res</font></u><i><font color="#9A1900">?edit=1</font></i> +<b><font color="#000000">cowboy_req:uri</font></b>(<font color="#009900">Req</font>, #{<font color="#0000FF">scheme</font> <font color="#990000">=></font> <font color="#990000"><<</font><font color="#FF0000">"https"</font><font color="#990000">>></font>})<font color="#990000">.</font></tt></pre> +</div></div> +<div class="listingblock"><div class="title">Convert the URI to a binary string</div> +<div class="content"><!-- Generator: GNU source-highlight 3.1.8 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><tt><span style="font-weight: bold"><span style="color: #000000">iolist_to_binary</span></span>(<span style="font-weight: bold"><span style="color: #000000">cowboy_req:uri</span></span>(<span style="color: #009900">Req</span>))<span style="color: #990000">.</span></tt></pre></div></div> -</div> -</div> -<div class="sect1"> +<pre><tt><b><font color="#000000">iolist_to_binary</font></b>(<b><font color="#000000">cowboy_req:uri</font></b>(<font color="#009900">Req</font>))<font color="#990000">.</font></tt></pre> +</div></div> <h2 id="_see_also">See also</h2> -<div class="sectionbody"> -<div class="paragraph"><p><a href="../cowboy_req">cowboy_req(3)</a>, -<a href="../cowboy_req.scheme">cowboy_req:scheme(3)</a>, -<a href="../cowboy_req.host">cowboy_req:host(3)</a>, -<a href="../cowboy_req.port">cowboy_req:port(3)</a>, -<a href="../cowboy_req.path">cowboy_req:path(3)</a>, -<a href="../cowboy_req.qs">cowboy_req:qs(3)</a></p></div> -</div> -</div> +<p><a href="../cowboy_req">cowboy_req(3)</a>, <a href="../cowboy_req.scheme">cowboy_req:scheme(3)</a>, <a href="../cowboy_req.host">cowboy_req:host(3)</a>, <a href="../cowboy_req.port">cowboy_req:port(3)</a>, <a href="../cowboy_req.path">cowboy_req:path(3)</a>, <a href="../cowboy_req.qs">cowboy_req:qs(3)</a></p> + |