1
0
mirror of https://github.com/actix/actix-website synced 2025-07-01 01:04:27 +02:00

update actix-web api docs

This commit is contained in:
Nikolay Kim
2018-10-10 08:38:33 -07:00
parent 29977f4930
commit bf8faa455d
2298 changed files with 129471 additions and 17241 deletions

View File

@ -1008,6 +1008,20 @@
<span id="1008">1008</span>
<span id="1009">1009</span>
<span id="1010">1010</span>
<span id="1011">1011</span>
<span id="1012">1012</span>
<span id="1013">1013</span>
<span id="1014">1014</span>
<span id="1015">1015</span>
<span id="1016">1016</span>
<span id="1017">1017</span>
<span id="1018">1018</span>
<span id="1019">1019</span>
<span id="1020">1020</span>
<span id="1021">1021</span>
<span id="1022">1022</span>
<span id="1023">1023</span>
<span id="1024">1024</span>
</pre><pre class="rust ">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">marker</span>::<span class="ident">PhantomData</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ops</span>::{<span class="ident">Deref</span>, <span class="ident">DerefMut</span>};
@ -1112,6 +1126,12 @@
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> <span class="ident">From</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Path</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">inner</span>: <span class="ident">T</span>) <span class="op">-&gt;</span> <span class="ident">Path</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
<span class="ident">Path</span> { <span class="ident">inner</span> }
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">S</span><span class="op">&gt;</span> <span class="ident">FromRequest</span><span class="op">&lt;</span><span class="ident">S</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Path</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span>
<span class="kw">where</span>
<span class="ident">T</span>: <span class="ident">DeserializeOwned</span>,
@ -1337,7 +1357,7 @@
<span class="doccomment">/// |r| {</span>
<span class="doccomment">/// r.method(http::Method::GET)</span>
<span class="doccomment">/// // register form handler and change form extractor configuration</span>
<span class="doccomment">/// .with_config(index, |cfg| {cfg.limit(4096);})</span>
<span class="doccomment">/// .with_config(index, |cfg| {cfg.0.limit(4096);})</span>
<span class="doccomment">/// },</span>
<span class="doccomment">/// );</span>
<span class="doccomment">/// }</span>
@ -1432,7 +1452,7 @@
<span class="doccomment">/// let app = App::new().resource(&quot;/index.html&quot;, |r| {</span>
<span class="doccomment">/// r.method(http::Method::GET)</span>
<span class="doccomment">/// .with_config(index, |cfg| { // &lt;- register handler with extractor params</span>
<span class="doccomment">/// cfg.limit(4096); // &lt;- limit size of the payload</span>
<span class="doccomment">/// cfg.0.limit(4096); // &lt;- limit size of the payload</span>
<span class="doccomment">/// })</span>
<span class="doccomment">/// });</span>
<span class="doccomment">/// }</span>
@ -1701,6 +1721,12 @@
}
});
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">S</span><span class="op">&gt;</span> <span class="ident">FromRequest</span><span class="op">&lt;</span><span class="ident">S</span><span class="op">&gt;</span> <span class="kw">for</span> () {
<span class="kw">type</span> <span class="ident">Config</span> <span class="op">=</span> ();
<span class="kw">type</span> <span class="prelude-ty">Result</span> <span class="op">=</span> <span class="self">Self</span>;
<span class="kw">fn</span> <span class="ident">from_request</span>(<span class="ident">_req</span>: <span class="kw-2">&amp;</span><span class="ident">HttpRequest</span><span class="op">&lt;</span><span class="ident">S</span><span class="op">&gt;</span>, <span class="ident">_cfg</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>::<span class="ident">Config</span>) <span class="op">-&gt;</span> <span class="self">Self</span>::<span class="prelude-ty">Result</span> {}
}
<span class="macro">tuple_from_req</span><span class="macro">!</span>(<span class="ident">TupleFromRequest1</span>, (<span class="number">0</span>, <span class="ident">A</span>));
<span class="macro">tuple_from_req</span><span class="macro">!</span>(<span class="ident">TupleFromRequest2</span>, (<span class="number">0</span>, <span class="ident">A</span>), (<span class="number">1</span>, <span class="ident">B</span>));
<span class="macro">tuple_from_req</span><span class="macro">!</span>(<span class="ident">TupleFromRequest3</span>, (<span class="number">0</span>, <span class="ident">A</span>), (<span class="number">1</span>, <span class="ident">B</span>), (<span class="number">2</span>, <span class="ident">C</span>));
@ -1801,8 +1827,8 @@
<span class="ident">header</span>::<span class="ident">CONTENT_TYPE</span>,
<span class="string">&quot;application/x-www-form-urlencoded&quot;</span>,
).<span class="ident">header</span>(<span class="ident">header</span>::<span class="ident">CONTENT_LENGTH</span>, <span class="string">&quot;11&quot;</span>)
.<span class="ident">set_payload</span>(<span class="ident">Bytes</span>::<span class="ident">from_static</span>(<span class="string">b&quot;hello=world&quot;</span>))
.<span class="ident">finish</span>();
.<span class="ident">set_payload</span>(<span class="ident">Bytes</span>::<span class="ident">from_static</span>(<span class="string">b&quot;hello=world&quot;</span>))
.<span class="ident">finish</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cfg</span> <span class="op">=</span> <span class="ident">FormConfig</span>::<span class="ident">default</span>();
<span class="ident">cfg</span>.<span class="ident">limit</span>(<span class="number">4096</span>);
@ -1836,8 +1862,8 @@
<span class="ident">header</span>::<span class="ident">CONTENT_TYPE</span>,
<span class="string">&quot;application/x-www-form-urlencoded&quot;</span>,
).<span class="ident">header</span>(<span class="ident">header</span>::<span class="ident">CONTENT_LENGTH</span>, <span class="string">&quot;9&quot;</span>)
.<span class="ident">set_payload</span>(<span class="ident">Bytes</span>::<span class="ident">from_static</span>(<span class="string">b&quot;hello=world&quot;</span>))
.<span class="ident">finish</span>();
.<span class="ident">set_payload</span>(<span class="ident">Bytes</span>::<span class="ident">from_static</span>(<span class="string">b&quot;hello=world&quot;</span>))
.<span class="ident">finish</span>();
<span class="kw">match</span> <span class="prelude-ty">Option</span>::<span class="op">&lt;</span><span class="ident">Form</span><span class="op">&lt;</span><span class="ident">Info</span><span class="op">&gt;&gt;</span>::<span class="ident">from_request</span>(<span class="kw-2">&amp;</span><span class="ident">req</span>, <span class="kw-2">&amp;</span><span class="ident">cfg</span>)
.<span class="ident">poll</span>()
@ -1856,8 +1882,8 @@
<span class="ident">header</span>::<span class="ident">CONTENT_TYPE</span>,
<span class="string">&quot;application/x-www-form-urlencoded&quot;</span>,
).<span class="ident">header</span>(<span class="ident">header</span>::<span class="ident">CONTENT_LENGTH</span>, <span class="string">&quot;9&quot;</span>)
.<span class="ident">set_payload</span>(<span class="ident">Bytes</span>::<span class="ident">from_static</span>(<span class="string">b&quot;bye=world&quot;</span>))
.<span class="ident">finish</span>();
.<span class="ident">set_payload</span>(<span class="ident">Bytes</span>::<span class="ident">from_static</span>(<span class="string">b&quot;bye=world&quot;</span>))
.<span class="ident">finish</span>();
<span class="kw">match</span> <span class="prelude-ty">Option</span>::<span class="op">&lt;</span><span class="ident">Form</span><span class="op">&lt;</span><span class="ident">Info</span><span class="op">&gt;&gt;</span>::<span class="ident">from_request</span>(<span class="kw-2">&amp;</span><span class="ident">req</span>, <span class="kw-2">&amp;</span><span class="ident">cfg</span>)
.<span class="ident">poll</span>()
@ -1874,8 +1900,8 @@
<span class="ident">header</span>::<span class="ident">CONTENT_TYPE</span>,
<span class="string">&quot;application/x-www-form-urlencoded&quot;</span>,
).<span class="ident">header</span>(<span class="ident">header</span>::<span class="ident">CONTENT_LENGTH</span>, <span class="string">&quot;11&quot;</span>)
.<span class="ident">set_payload</span>(<span class="ident">Bytes</span>::<span class="ident">from_static</span>(<span class="string">b&quot;hello=world&quot;</span>))
.<span class="ident">finish</span>();
.<span class="ident">set_payload</span>(<span class="ident">Bytes</span>::<span class="ident">from_static</span>(<span class="string">b&quot;hello=world&quot;</span>))
.<span class="ident">finish</span>();
<span class="kw">match</span> <span class="prelude-ty">Result</span>::<span class="op">&lt;</span><span class="ident">Form</span><span class="op">&lt;</span><span class="ident">Info</span><span class="op">&gt;</span>, <span class="ident">Error</span><span class="op">&gt;</span>::<span class="ident">from_request</span>(<span class="kw-2">&amp;</span><span class="ident">req</span>, <span class="kw-2">&amp;</span><span class="ident">FormConfig</span>::<span class="ident">default</span>())
.<span class="ident">poll</span>()
@ -1894,8 +1920,8 @@
<span class="ident">header</span>::<span class="ident">CONTENT_TYPE</span>,
<span class="string">&quot;application/x-www-form-urlencoded&quot;</span>,
).<span class="ident">header</span>(<span class="ident">header</span>::<span class="ident">CONTENT_LENGTH</span>, <span class="string">&quot;9&quot;</span>)
.<span class="ident">set_payload</span>(<span class="ident">Bytes</span>::<span class="ident">from_static</span>(<span class="string">b&quot;bye=world&quot;</span>))
.<span class="ident">finish</span>();
.<span class="ident">set_payload</span>(<span class="ident">Bytes</span>::<span class="ident">from_static</span>(<span class="string">b&quot;bye=world&quot;</span>))
.<span class="ident">finish</span>();
<span class="kw">match</span> <span class="prelude-ty">Result</span>::<span class="op">&lt;</span><span class="ident">Form</span><span class="op">&lt;</span><span class="ident">Info</span><span class="op">&gt;</span>, <span class="ident">Error</span><span class="op">&gt;</span>::<span class="ident">from_request</span>(<span class="kw-2">&amp;</span><span class="ident">req</span>, <span class="kw-2">&amp;</span><span class="ident">FormConfig</span>::<span class="ident">default</span>())
.<span class="ident">poll</span>()
@ -1945,7 +1971,7 @@
<span class="kw">fn</span> <span class="ident">test_request_extract</span>() {
<span class="kw">let</span> <span class="ident">req</span> <span class="op">=</span> <span class="ident">TestRequest</span>::<span class="ident">with_uri</span>(<span class="string">&quot;/name/user1/?id=test&quot;</span>).<span class="ident">finish</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">router</span> <span class="op">=</span> <span class="ident">Router</span>::<span class="op">&lt;</span>()<span class="op">&gt;</span>::<span class="ident">new</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">router</span> <span class="op">=</span> <span class="ident">Router</span>::<span class="op">&lt;</span>()<span class="op">&gt;</span>::<span class="ident">default</span>();
<span class="ident">router</span>.<span class="ident">register_resource</span>(<span class="ident">Resource</span>::<span class="ident">new</span>(<span class="ident">ResourceDef</span>::<span class="ident">new</span>(<span class="string">&quot;/{key}/{value}/&quot;</span>)));
<span class="kw">let</span> <span class="ident">info</span> <span class="op">=</span> <span class="ident">router</span>.<span class="ident">recognize</span>(<span class="kw-2">&amp;</span><span class="ident">req</span>, <span class="kw-2">&amp;</span>(), <span class="number">0</span>);
<span class="kw">let</span> <span class="ident">req</span> <span class="op">=</span> <span class="ident">req</span>.<span class="ident">with_route_info</span>(<span class="ident">info</span>);
@ -1961,7 +1987,7 @@
<span class="kw">let</span> <span class="ident">s</span> <span class="op">=</span> <span class="ident">Query</span>::<span class="op">&lt;</span><span class="ident">Id</span><span class="op">&gt;</span>::<span class="ident">from_request</span>(<span class="kw-2">&amp;</span><span class="ident">req</span>, <span class="kw-2">&amp;</span>()).<span class="ident">unwrap</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">s</span>.<span class="ident">id</span>, <span class="string">&quot;test&quot;</span>);
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">router</span> <span class="op">=</span> <span class="ident">Router</span>::<span class="op">&lt;</span>()<span class="op">&gt;</span>::<span class="ident">new</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">router</span> <span class="op">=</span> <span class="ident">Router</span>::<span class="op">&lt;</span>()<span class="op">&gt;</span>::<span class="ident">default</span>();
<span class="ident">router</span>.<span class="ident">register_resource</span>(<span class="ident">Resource</span>::<span class="ident">new</span>(<span class="ident">ResourceDef</span>::<span class="ident">new</span>(<span class="string">&quot;/{key}/{value}/&quot;</span>)));
<span class="kw">let</span> <span class="ident">req</span> <span class="op">=</span> <span class="ident">TestRequest</span>::<span class="ident">with_uri</span>(<span class="string">&quot;/name/32/&quot;</span>).<span class="ident">finish</span>();
<span class="kw">let</span> <span class="ident">info</span> <span class="op">=</span> <span class="ident">router</span>.<span class="ident">recognize</span>(<span class="kw-2">&amp;</span><span class="ident">req</span>, <span class="kw-2">&amp;</span>(), <span class="number">0</span>);
@ -1982,7 +2008,7 @@
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">test_extract_path_single</span>() {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">router</span> <span class="op">=</span> <span class="ident">Router</span>::<span class="op">&lt;</span>()<span class="op">&gt;</span>::<span class="ident">new</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">router</span> <span class="op">=</span> <span class="ident">Router</span>::<span class="op">&lt;</span>()<span class="op">&gt;</span>::<span class="ident">default</span>();
<span class="ident">router</span>.<span class="ident">register_resource</span>(<span class="ident">Resource</span>::<span class="ident">new</span>(<span class="ident">ResourceDef</span>::<span class="ident">new</span>(<span class="string">&quot;/{value}/&quot;</span>)));
<span class="kw">let</span> <span class="ident">req</span> <span class="op">=</span> <span class="ident">TestRequest</span>::<span class="ident">with_uri</span>(<span class="string">&quot;/32/&quot;</span>).<span class="ident">finish</span>();
@ -1993,7 +2019,7 @@
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">test_tuple_extract</span>() {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">router</span> <span class="op">=</span> <span class="ident">Router</span>::<span class="op">&lt;</span>()<span class="op">&gt;</span>::<span class="ident">new</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">router</span> <span class="op">=</span> <span class="ident">Router</span>::<span class="op">&lt;</span>()<span class="op">&gt;</span>::<span class="ident">default</span>();
<span class="ident">router</span>.<span class="ident">register_resource</span>(<span class="ident">Resource</span>::<span class="ident">new</span>(<span class="ident">ResourceDef</span>::<span class="ident">new</span>(<span class="string">&quot;/{key}/{value}/&quot;</span>)));
<span class="kw">let</span> <span class="ident">req</span> <span class="op">=</span> <span class="ident">TestRequest</span>::<span class="ident">with_uri</span>(<span class="string">&quot;/name/user1/?id=test&quot;</span>).<span class="ident">finish</span>();
@ -2017,6 +2043,8 @@
<span class="macro">assert_eq</span><span class="macro">!</span>((<span class="ident">res</span>.<span class="number">0</span>).<span class="number">1</span>, <span class="string">&quot;user1&quot;</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>((<span class="ident">res</span>.<span class="number">1</span>).<span class="number">0</span>, <span class="string">&quot;name&quot;</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>((<span class="ident">res</span>.<span class="number">1</span>).<span class="number">1</span>, <span class="string">&quot;user1&quot;</span>);
<span class="kw">let</span> () <span class="op">=</span> <span class="op">&lt;</span>()<span class="op">&gt;</span>::<span class="ident">extract</span>(<span class="kw-2">&amp;</span><span class="ident">req</span>);
}
}
</pre>