1
0
mirror of https://github.com/actix/actix-website synced 2025-07-01 17:15:08 +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

@ -531,6 +531,18 @@
<span id="531">531</span>
<span id="532">532</span>
<span id="533">533</span>
<span id="534">534</span>
<span id="535">535</span>
<span id="536">536</span>
<span id="537">537</span>
<span id="538">538</span>
<span id="539">539</span>
<span id="540">540</span>
<span id="541">541</span>
<span id="542">542</span>
<span id="543">543</span>
<span id="544">544</span>
<span id="545">545</span>
</pre><pre class="rust ">
<span class="doccomment">//! HTTP Request message related code.</span>
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">cell</span>::{<span class="ident">Ref</span>, <span class="ident">RefMut</span>};
@ -615,6 +627,15 @@
}
}
<span class="doccomment">/// Construct new http request with empty state.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">drop_state</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">HttpRequest</span> {
<span class="ident">HttpRequest</span> {
<span class="ident">state</span>: <span class="ident">Rc</span>::<span class="ident">new</span>(()),
<span class="ident">req</span>: <span class="self">self</span>.<span class="ident">req</span>.<span class="ident">as_ref</span>().<span class="ident">map</span>(<span class="op">|</span><span class="ident">r</span><span class="op">|</span> <span class="ident">r</span>.<span class="ident">clone</span>()),
<span class="ident">resource</span>: <span class="self">self</span>.<span class="ident">resource</span>.<span class="ident">clone</span>(),
}
}
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="doccomment">/// Construct new http request with new RouteInfo.</span>
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn</span> <span class="ident">with_route_info</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="kw-2">mut</span> <span class="ident">resource</span>: <span class="ident">ResourceInfo</span>) <span class="op">-&gt;</span> <span class="ident">HttpRequest</span><span class="op">&lt;</span><span class="ident">S</span><span class="op">&gt;</span> {
@ -789,7 +810,8 @@
<span class="kw">if</span> <span class="self">self</span>.<span class="ident">extensions</span>().<span class="ident">get</span>::<span class="op">&lt;</span><span class="ident">Cookies</span><span class="op">&gt;</span>().<span class="ident">is_none</span>() {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cookies</span> <span class="op">=</span> <span class="ident">Vec</span>::<span class="ident">new</span>();
<span class="kw">for</span> <span class="ident">hdr</span> <span class="kw">in</span> <span class="self">self</span>.<span class="ident">request</span>().<span class="ident">inner</span>.<span class="ident">headers</span>.<span class="ident">get_all</span>(<span class="ident">header</span>::<span class="ident">COOKIE</span>) {
<span class="kw">let</span> <span class="ident">s</span> <span class="op">=</span> <span class="ident">str</span>::<span class="ident">from_utf8</span>(<span class="ident">hdr</span>.<span class="ident">as_bytes</span>()).<span class="ident">map_err</span>(<span class="ident">CookieParseError</span>::<span class="ident">from</span>)<span class="question-mark">?</span>;
<span class="kw">let</span> <span class="ident">s</span> <span class="op">=</span>
<span class="ident">str</span>::<span class="ident">from_utf8</span>(<span class="ident">hdr</span>.<span class="ident">as_bytes</span>()).<span class="ident">map_err</span>(<span class="ident">CookieParseError</span>::<span class="ident">from</span>)<span class="question-mark">?</span>;
<span class="kw">for</span> <span class="ident">cookie_str</span> <span class="kw">in</span> <span class="ident">s</span>.<span class="ident">split</span>(<span class="string">&#39;;&#39;</span>).<span class="ident">map</span>(<span class="op">|</span><span class="ident">s</span><span class="op">|</span> <span class="ident">s</span>.<span class="ident">trim</span>()) {
<span class="kw">if</span> <span class="op">!</span><span class="ident">cookie_str</span>.<span class="ident">is_empty</span>() {
<span class="ident">cookies</span>.<span class="ident">push</span>(<span class="ident">Cookie</span>::<span class="ident">parse_encoded</span>(<span class="ident">cookie_str</span>)<span class="question-mark">?</span>.<span class="ident">into_owned</span>());
@ -878,24 +900,24 @@
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">S</span><span class="op">&gt;</span> <span class="ident">fmt</span>::<span class="ident">Debug</span> <span class="kw">for</span> <span class="ident">HttpRequest</span><span class="op">&lt;</span><span class="ident">S</span><span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-&gt;</span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
<span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="macro">writeln</span><span class="macro">!</span>(
<span class="macro">writeln</span><span class="macro">!</span>(
<span class="ident">f</span>,
<span class="string">&quot;\nHttpRequest {:?} {}:{}&quot;</span>,
<span class="self">self</span>.<span class="ident">version</span>(),
<span class="self">self</span>.<span class="ident">method</span>(),
<span class="self">self</span>.<span class="ident">path</span>()
);
)<span class="question-mark">?</span>;
<span class="kw">if</span> <span class="op">!</span><span class="self">self</span>.<span class="ident">query_string</span>().<span class="ident">is_empty</span>() {
<span class="kw">let</span> <span class="kw">_</span> <span class="op">=</span> <span class="macro">writeln</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="string">&quot; query: ?{:?}&quot;</span>, <span class="self">self</span>.<span class="ident">query_string</span>());
<span class="macro">writeln</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="string">&quot; query: ?{:?}&quot;</span>, <span class="self">self</span>.<span class="ident">query_string</span>())<span class="question-mark">?</span>;
}
<span class="kw">if</span> <span class="op">!</span><span class="self">self</span>.<span class="ident">match_info</span>().<span class="ident">is_empty</span>() {
<span class="kw">let</span> <span class="kw">_</span> <span class="op">=</span> <span class="macro">writeln</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="string">&quot; params: {:?}&quot;</span>, <span class="self">self</span>.<span class="ident">match_info</span>());
<span class="macro">writeln</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="string">&quot; params: {:?}&quot;</span>, <span class="self">self</span>.<span class="ident">match_info</span>())<span class="question-mark">?</span>;
}
<span class="kw">let</span> <span class="kw">_</span> <span class="op">=</span> <span class="macro">writeln</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="string">&quot; headers:&quot;</span>);
<span class="macro">writeln</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="string">&quot; headers:&quot;</span>)<span class="question-mark">?</span>;
<span class="kw">for</span> (<span class="ident">key</span>, <span class="ident">val</span>) <span class="kw">in</span> <span class="self">self</span>.<span class="ident">headers</span>().<span class="ident">iter</span>() {
<span class="kw">let</span> <span class="kw">_</span> <span class="op">=</span> <span class="macro">writeln</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="string">&quot; {:?}: {:?}&quot;</span>, <span class="ident">key</span>, <span class="ident">val</span>);
<span class="macro">writeln</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="string">&quot; {:?}: {:?}&quot;</span>, <span class="ident">key</span>, <span class="ident">val</span>)<span class="question-mark">?</span>;
}
<span class="ident">res</span>
<span class="prelude-val">Ok</span>(())
}
}
@ -954,7 +976,7 @@
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">test_request_match_info</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}/&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;/value/?id=test&quot;</span>).<span class="ident">finish</span>();
@ -964,7 +986,7 @@
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">test_url_for</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="kw">let</span> <span class="kw-2">mut</span> <span class="ident">resource</span> <span class="op">=</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;/user/{name}.{ext}&quot;</span>));
<span class="ident">resource</span>.<span class="ident">name</span>(<span class="string">&quot;index&quot;</span>);
<span class="ident">router</span>.<span class="ident">register_resource</span>(<span class="ident">resource</span>);
@ -998,7 +1020,8 @@
<span class="kw">fn</span> <span class="ident">test_url_for_with_prefix</span>() {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">resource</span> <span class="op">=</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;/user/{name}.html&quot;</span>));
<span class="ident">resource</span>.<span class="ident">name</span>(<span class="string">&quot;index&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">set_prefix</span>(<span class="string">&quot;/prefix&quot;</span>);
<span class="ident">router</span>.<span class="ident">register_resource</span>(<span class="ident">resource</span>);
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">info</span> <span class="op">=</span> <span class="ident">router</span>.<span class="ident">default_route_info</span>();
@ -1024,7 +1047,8 @@
<span class="kw">fn</span> <span class="ident">test_url_for_static</span>() {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">resource</span> <span class="op">=</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;/index.html&quot;</span>));
<span class="ident">resource</span>.<span class="ident">name</span>(<span class="string">&quot;index&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">set_prefix</span>(<span class="string">&quot;/prefix&quot;</span>);
<span class="ident">router</span>.<span class="ident">register_resource</span>(<span class="ident">resource</span>);
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">info</span> <span class="op">=</span> <span class="ident">router</span>.<span class="ident">default_route_info</span>();
@ -1047,7 +1071,7 @@
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">test_url_for_external</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_external</span>(
<span class="string">&quot;youtube&quot;</span>,
<span class="ident">ResourceDef</span>::<span class="ident">external</span>(<span class="string">&quot;https://youtube.com/watch/{video_id}&quot;</span>),