This file is indexed.

/usr/share/doc/libghc-servant-server-doc/html/Servant-Server-Internal.html is in libghc-servant-server-doc 0.8.1-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Servant.Server.Internal</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="file:///usr/share/javascript/mathjax/MathJax.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Servant-Server-Internal.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Servant-Server-Internal.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">servant-server-0.8.1: A family of combinators for defining webservices APIs and serving them</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Servant.Server.Internal</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Instances</a></li><li><a href="#g:2">helpers</a></li><li><a href="#g:3">General Authentication</a></li><li><a href="#g:4">contexts</a></li></ul></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span> <a href="#t:HasServer">HasServer</a> api context <span class="keyword">where</span><ul class="subs"><li><span class="keyword">type</span> <a href="#t:ServerT">ServerT</a> api (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a></li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:Server">Server</a> api = <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> api <a href="Servant-Server-Internal-ServantErr.html#t:Handler">Handler</a></li><li class="src short"><a href="#v:allowedMethodHead">allowedMethodHead</a> :: <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Method.html#t:Method">Method</a> -&gt; <a href="file:///usr/share/doc/libghc-wai-doc/html/Network-Wai.html#t:Request">Request</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:allowedMethod">allowedMethod</a> :: <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Method.html#t:Method">Method</a> -&gt; <a href="file:///usr/share/doc/libghc-wai-doc/html/Network-Wai.html#t:Request">Request</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:processMethodRouter">processMethodRouter</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a>) -&gt; <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Status.html#t:Status">Status</a> -&gt; <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Method.html#t:Method">Method</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [(<a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Header.html#t:HeaderName">HeaderName</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>)] -&gt; <a href="file:///usr/share/doc/libghc-wai-doc/html/Network-Wai.html#t:Request">Request</a> -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:RouteResult">RouteResult</a> <a href="file:///usr/share/doc/libghc-wai-doc/html/Network-Wai.html#t:Response">Response</a></li><li class="src short"><a href="#v:methodCheck">methodCheck</a> :: <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Method.html#t:Method">Method</a> -&gt; <a href="file:///usr/share/doc/libghc-wai-doc/html/Network-Wai.html#t:Request">Request</a> -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:DelayedIO">DelayedIO</a> ()</li><li class="src short"><a href="#v:acceptCheck">acceptCheck</a> :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ContentTypes.html#t:AllMime">AllMime</a> list =&gt; <a href="Servant.html#t:Proxy">Proxy</a> list -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:DelayedIO">DelayedIO</a> ()</li><li class="src short"><a href="#v:methodRouter">methodRouter</a> :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ContentTypes.html#t:AllCTRender">AllCTRender</a> ctypes a =&gt; <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Method.html#t:Method">Method</a> -&gt; <a href="Servant.html#t:Proxy">Proxy</a> ctypes -&gt; <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Status.html#t:Status">Status</a> -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal-ServantErr.html#t:Handler">Handler</a> a) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env</li><li class="src short"><a href="#v:methodRouterHeaders">methodRouterHeaders</a> :: (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ResponseHeaders.html#t:GetHeaders">GetHeaders</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ResponseHeaders.html#t:Headers">Headers</a> h v), <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ContentTypes.html#t:AllCTRender">AllCTRender</a> ctypes v) =&gt; <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Method.html#t:Method">Method</a> -&gt; <a href="Servant.html#t:Proxy">Proxy</a> ctypes -&gt; <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Status.html#t:Status">Status</a> -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal-ServantErr.html#t:Handler">Handler</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ResponseHeaders.html#t:Headers">Headers</a> h v)) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env</li><li class="src short"><a href="#v:ct_wildcard">ct_wildcard</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a></li><li class="src short">module <a href="Servant-Server-Internal-Context.html">Servant.Server.Internal.Context</a></li><li class="src short">module <a href="Servant-Server-Internal-BasicAuth.html">Servant.Server.Internal.BasicAuth</a></li><li class="src short">module <a href="Servant-Server-Internal-Router.html">Servant.Server.Internal.Router</a></li><li class="src short">module <a href="Servant-Server-Internal-RoutingApplication.html">Servant.Server.Internal.RoutingApplication</a></li><li class="src short">module <a href="Servant-Server-Internal-ServantErr.html">Servant.Server.Internal.ServantErr</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:HasServer" class="def">HasServer</a> api context <span class="keyword">where</span> <a href="src/Servant-Server-Internal.html#HasServer" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></p><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Servant-Server-Internal.html#v:route">route</a></p></div><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a id="t:ServerT" class="def">ServerT</a> api (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:route" class="def">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> api -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> api) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:HasServer" class="caption collapser" onclick="toggleSection('i:HasServer')">Instances</p><div id="section.i:HasServer" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:1" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:1')"></span> <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Raw.html#t:Raw">Raw</a> context</span> <a href="src/Servant-Server-Internal.html#line-398" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc"><p>Just pass the request to the underlying application and serve its response.</p><p>Example:</p><pre>type MyApi = &quot;images&quot; :&gt; Raw

server :: Server MyApi
server = serveDirectory &quot;/var/www/images&quot;</pre></td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:1" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Raw.html#t:Raw">Raw</a> (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Raw.html#t:Raw">Raw</a>) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Raw.html#t:Raw">Raw</a> context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Raw.html#t:Raw">Raw</a> context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:2" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:2')"></span> (<a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> a context, <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> b context) =&gt; <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Alternative.html#t::-60--124--62-">(:&lt;|&gt;)</a> a b) context</span> <a href="src/Servant-Server-Internal.html#line-97" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc"><p>A server for <code>a <code><a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Alternative.html#t::-60--124--62-">:&lt;|&gt;</a></code> b</code> first tries to match the request against the route
   represented by <code>a</code> and if it fails tries <code>b</code>. You must provide a request
   handler for each route.</p><pre>type MyApi = &quot;books&quot; :&gt; Get '[JSON] [Book] -- GET /books
        :&lt;|&gt; &quot;books&quot; :&gt; ReqBody Book :&gt; Post '[JSON] Book -- POST /books

server :: Server MyApi
server = listAllBooks :&lt;|&gt; postBook
  where listAllBooks = ...
        postBook book = ...</pre></td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:2" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Alternative.html#t::-60--124--62-">(:&lt;|&gt;)</a> a b) (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Alternative.html#t::-60--124--62-">(:&lt;|&gt;)</a> a b) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> (a <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Alternative.html#t::-60--124--62-">:&lt;|&gt;</a> b) context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> (a <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Alternative.html#t::-60--124--62-">:&lt;|&gt;</a> b) context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:3" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:3')"></span> (<a href="Servant-Server-Internal-Context.html#t:HasContextEntry">HasContextEntry</a> context (<a href="Servant-Server-Internal-Context.html#t:NamedContext">NamedContext</a> name subContext), <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> subApi subContext) =&gt; <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-WithNamedContext.html#t:WithNamedContext">WithNamedContext</a> name subContext subApi) context</span> <a href="src/Servant-Server-Internal.html#line-517" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:3" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-WithNamedContext.html#t:WithNamedContext">WithNamedContext</a> name subContext subApi) (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-WithNamedContext.html#t:WithNamedContext">WithNamedContext</a> name subContext subApi) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-WithNamedContext.html#t:WithNamedContext">WithNamedContext</a> name subContext subApi) context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-WithNamedContext.html#t:WithNamedContext">WithNamedContext</a> name subContext subApi) context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:4" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:4')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-TypeLits.html#t:KnownSymbol">KnownSymbol</a> realm, <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> k1 api context, <a href="Servant-Server-Internal-Context.html#t:HasContextEntry">HasContextEntry</a> context (<a href="Servant-Server-Internal-BasicAuth.html#t:BasicAuthCheck">BasicAuthCheck</a> usr)) =&gt; <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-BasicAuth.html#t:BasicAuth">BasicAuth</a> realm usr) api) context</span> <a href="src/Servant-Server-Internal.html#line-492" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc"><p>Basic Authentication</p></td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-BasicAuth.html#t:BasicAuth">BasicAuth</a> realm usr) api) (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-BasicAuth.html#t:BasicAuth">BasicAuth</a> realm usr) api) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-BasicAuth.html#t:BasicAuth">BasicAuth</a> realm usr) api) context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-BasicAuth.html#t:BasicAuth">BasicAuth</a> realm usr) api) context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:5" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:5')"></span> <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> k1 api context =&gt; <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Version.html#t:HttpVersion">HttpVersion</a> api) context</span> <a href="src/Servant-Server-Internal.html#line-485" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Version.html#t:HttpVersion">HttpVersion</a> api) (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Version.html#t:HttpVersion">HttpVersion</a> api) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Version.html#t:HttpVersion">HttpVersion</a> api) context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Version.html#t:HttpVersion">HttpVersion</a> api) context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:6" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:6')"></span> <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> k1 api context =&gt; <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Vault.html#t:Vault">Vault</a> api) context</span> <a href="src/Servant-Server-Internal.html#line-479" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Vault.html#t:Vault">Vault</a> api) (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Vault.html#t:Vault">Vault</a> api) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Vault.html#t:Vault">Vault</a> api) context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Vault.html#t:Vault">Vault</a> api) context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:7" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:7')"></span> <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> k1 api context =&gt; <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-IsSecure.html#t:IsSecure">IsSecure</a> api) context</span> <a href="src/Servant-Server-Internal.html#line-471" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-IsSecure.html#t:IsSecure">IsSecure</a> api) (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-IsSecure.html#t:IsSecure">IsSecure</a> api) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-IsSecure.html#t:IsSecure">IsSecure</a> api) context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-IsSecure.html#t:IsSecure">IsSecure</a> api) context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:8" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:8')"></span> <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> k1 api context =&gt; <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-RemoteHost.html#t:RemoteHost">RemoteHost</a> api) context</span> <a href="src/Servant-Server-Internal.html#line-465" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:8" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-RemoteHost.html#t:RemoteHost">RemoteHost</a> api) (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-RemoteHost.html#t:RemoteHost">RemoteHost</a> api) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-RemoteHost.html#t:RemoteHost">RemoteHost</a> api) context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-RemoteHost.html#t:RemoteHost">RemoteHost</a> api) context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:9" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:9')"></span> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ContentTypes.html#t:AllCTUnrender">AllCTUnrender</a> list a, <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> k1 api context) =&gt; <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ReqBody.html#t:ReqBody">ReqBody</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> list a) api) context</span> <a href="src/Servant-Server-Internal.html#line-430" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc"><p>If you use <code><a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ReqBody.html#t:ReqBody">ReqBody</a></code> in one of the endpoints for your API,
 this automatically requires your server-side handler to be a function
 that takes an argument of the type specified by <code><a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ReqBody.html#t:ReqBody">ReqBody</a></code>.
 The <code>Content-Type</code> header is inspected, and the list provided is used to
 attempt deserialization. If the request does not have a <code>Content-Type</code>
 header, it is treated as <code>application/octet-stream</code> (as specified in
 <a href="http://tools.ietf.org/html/rfc7231#section-3.1.1.5">RFC7231</a>.
 This lets servant worry about extracting it from the request and turning
 it into a value of the type you specify.</p><p>All it asks is for a <code>FromJSON</code> instance.</p><p>Example:</p><pre>type MyApi = &quot;books&quot; :&gt; ReqBody '[JSON] Book :&gt; Post '[JSON] Book

server :: Server MyApi
server = postBook
  where postBook :: Book -&gt; Handler Book
        postBook book = ...insert into your db...</pre></td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:9" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ReqBody.html#t:ReqBody">ReqBody</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> list a) api) (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ReqBody.html#t:ReqBody">ReqBody</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> list a) api) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ReqBody.html#t:ReqBody">ReqBody</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> list a) api) context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ReqBody.html#t:ReqBody">ReqBody</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> list a) api) context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:10" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:10')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-TypeLits.html#t:KnownSymbol">KnownSymbol</a> sym, <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> k1 api context) =&gt; <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryFlag">QueryFlag</a> sym) api) context</span> <a href="src/Servant-Server-Internal.html#line-373" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc"><p>If you use <code><code><a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryFlag">QueryFlag</a></code> &quot;published&quot;</code> in one of the endpoints for your API,
 this automatically requires your server-side handler to be a function
 that takes an argument of type <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a></code>.</p><p>Example:</p><pre>type MyApi = &quot;books&quot; :&gt; QueryFlag &quot;published&quot; :&gt; Get '[JSON] [Book]

server :: Server MyApi
server = getBooks
  where getBooks :: Bool -&gt; Handler [Book]
        getBooks onlyPublished = ...return all books, or only the ones that are already published, depending on the argument...</pre></td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:10" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryFlag">QueryFlag</a> sym) api) (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryFlag">QueryFlag</a> sym) api) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryFlag">QueryFlag</a> sym) api) context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryFlag">QueryFlag</a> sym) api) context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:11" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:11')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-TypeLits.html#t:KnownSymbol">KnownSymbol</a> sym, <a href="file:///usr/share/doc/libghc-http-api-data-doc/html/Web-HttpApiData-Internal.html#t:FromHttpApiData">FromHttpApiData</a> a, <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> k1 api context) =&gt; <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryParams">QueryParams</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> sym a) api) context</span> <a href="src/Servant-Server-Internal.html#line-342" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc"><p>If you use <code><code><a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryParams">QueryParams</a></code> &quot;authors&quot; Text</code> in one of the endpoints for your API,
 this automatically requires your server-side handler to be a function
 that takes an argument of type <code>[<code>Text</code>]</code>.</p><p>This lets servant worry about looking up 0 or more values in the query string
 associated to <code>authors</code> and turning each of them into a value of
 the type you specify.</p><p>You can control how the individual values are converted from <code>Text</code> to your type
 by simply providing an instance of <code><a href="file:///usr/share/doc/libghc-http-api-data-doc/html/Web-HttpApiData-Internal.html#t:FromHttpApiData">FromHttpApiData</a></code> for your type.</p><p>Example:</p><pre>type MyApi = &quot;books&quot; :&gt; QueryParams &quot;authors&quot; Text :&gt; Get '[JSON] [Book]

server :: Server MyApi
server = getBooksBy
  where getBooksBy :: [Text] -&gt; Handler [Book]
        getBooksBy authors = ...return all books by these authors...</pre></td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:11" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryParams">QueryParams</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> sym a) api) (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryParams">QueryParams</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> sym a) api) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryParams">QueryParams</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> sym a) api) context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryParams">QueryParams</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> sym a) api) context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:12" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:12')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-TypeLits.html#t:KnownSymbol">KnownSymbol</a> sym, <a href="file:///usr/share/doc/libghc-http-api-data-doc/html/Web-HttpApiData-Internal.html#t:FromHttpApiData">FromHttpApiData</a> a, <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> k1 api context) =&gt; <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryParam">QueryParam</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> sym a) api) context</span> <a href="src/Servant-Server-Internal.html#line-306" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc"><p>If you use <code><code><a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryParam">QueryParam</a></code> &quot;author&quot; Text</code> in one of the endpoints for your API,
 this automatically requires your server-side handler to be a function
 that takes an argument of type <code><code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a></code> <code>Text</code></code>.</p><p>This lets servant worry about looking it up in the query string
 and turning it into a value of the type you specify, enclosed
 in <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a></code>, because it may not be there and servant would then
 hand you <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#v:Nothing">Nothing</a></code>.</p><p>You can control how it'll be converted from <code>Text</code> to your type
 by simply providing an instance of <code><a href="file:///usr/share/doc/libghc-http-api-data-doc/html/Web-HttpApiData-Internal.html#t:FromHttpApiData">FromHttpApiData</a></code> for your type.</p><p>Example:</p><pre>type MyApi = &quot;books&quot; :&gt; QueryParam &quot;author&quot; Text :&gt; Get '[JSON] [Book]

server :: Server MyApi
server = getBooksBy
  where getBooksBy :: Maybe Text -&gt; Handler [Book]
        getBooksBy Nothing       = ...return all books...
        getBooksBy (Just author) = ...return books by the given author...</pre></td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:12" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryParam">QueryParam</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> sym a) api) (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryParam">QueryParam</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> sym a) api) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryParam">QueryParam</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> sym a) api) context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-QueryParam.html#t:QueryParam">QueryParam</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> sym a) api) context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:13" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:13')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-TypeLits.html#t:KnownSymbol">KnownSymbol</a> sym, <a href="file:///usr/share/doc/libghc-http-api-data-doc/html/Web-HttpApiData-Internal.html#t:FromHttpApiData">FromHttpApiData</a> a, <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> k1 api context) =&gt; <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Header.html#t:Header">Header</a> sym a) api) context</span> <a href="src/Servant-Server-Internal.html#line-274" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc"><p>If you use <code><a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Header.html#t:Header">Header</a></code> in one of the endpoints for your API,
 this automatically requires your server-side handler to be a function
 that takes an argument of the type specified by <code><a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Header.html#t:Header">Header</a></code>.
 This lets servant worry about extracting it from the request and turning
 it into a value of the type you specify.</p><p>All it asks is for a <code><a href="file:///usr/share/doc/libghc-http-api-data-doc/html/Web-HttpApiData-Internal.html#t:FromHttpApiData">FromHttpApiData</a></code> instance.</p><p>Example:</p><pre>newtype Referer = Referer Text
  deriving (Eq, Show, FromHttpApiData)

           -- GET /view-my-referer
type MyApi = &quot;view-my-referer&quot; :&gt; Header &quot;Referer&quot; Referer :&gt; Get '[JSON] Referer

server :: Server MyApi
server = viewReferer
  where viewReferer :: Referer -&gt; Handler referer
        viewReferer referer = return referer</pre></td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:13" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Header.html#t:Header">Header</a> sym a) api) (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Header.html#t:Header">Header</a> sym a) api) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Header.html#t:Header">Header</a> sym a) api) context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Header.html#t:Header">Header</a> sym a) api) context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:14" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:14')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-TypeLits.html#t:KnownSymbol">KnownSymbol</a> capture, <a href="file:///usr/share/doc/libghc-http-api-data-doc/html/Web-HttpApiData-Internal.html#t:FromHttpApiData">FromHttpApiData</a> a, <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> k1 sublayout context) =&gt; <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Capture.html#t:CaptureAll">CaptureAll</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> capture a) sublayout) context</span> <a href="src/Servant-Server-Internal.html#line-155" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc"><p>If you use <code><a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Capture.html#t:CaptureAll">CaptureAll</a></code> in one of the endpoints for your API,
 this automatically requires your server-side handler to be a
 function that takes an argument of a list of the type specified by
 the <code><a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Capture.html#t:CaptureAll">CaptureAll</a></code>. This lets servant worry about getting values from
 the URL and turning them into values of the type you specify.</p><p>You can control how they'll be converted from <code>Text</code> to your type
 by simply providing an instance of <code><a href="file:///usr/share/doc/libghc-http-api-data-doc/html/Web-HttpApiData-Internal.html#t:FromHttpApiData">FromHttpApiData</a></code> for your type.</p><p>Example:</p><pre>type MyApi = &quot;src&quot; :&gt; CaptureAll &quot;segments&quot; Text :&gt; Get '[JSON] SourceFile

server :: Server MyApi
server = getSourceFile
  where getSourceFile :: [Text] -&gt; Handler Book
        getSourceFile pathSegments = ...</pre></td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:14" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Capture.html#t:CaptureAll">CaptureAll</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> capture a) sublayout) (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Capture.html#t:CaptureAll">CaptureAll</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> capture a) sublayout) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Capture.html#t:CaptureAll">CaptureAll</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> capture a) sublayout) context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Capture.html#t:CaptureAll">CaptureAll</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> capture a) sublayout) context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:15" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:15')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-TypeLits.html#t:KnownSymbol">KnownSymbol</a> capture, <a href="file:///usr/share/doc/libghc-http-api-data-doc/html/Web-HttpApiData-Internal.html#t:FromHttpApiData">FromHttpApiData</a> a, <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> k1 api context) =&gt; <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Capture.html#t:Capture">Capture</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> capture a) api) context</span> <a href="src/Servant-Server-Internal.html#line-123" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc"><p>If you use <code><a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Capture.html#t:Capture">Capture</a></code> in one of the endpoints for your API,
 this automatically requires your server-side handler to be a function
 that takes an argument of the type specified by the <code><a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Capture.html#t:Capture">Capture</a></code>.
 This lets servant worry about getting it from the URL and turning
 it into a value of the type you specify.</p><p>You can control how it'll be converted from <code>Text</code> to your type
 by simply providing an instance of <code><a href="file:///usr/share/doc/libghc-http-api-data-doc/html/Web-HttpApiData-Internal.html#t:FromHttpApiData">FromHttpApiData</a></code> for your type.</p><p>Example:</p><pre>type MyApi = &quot;books&quot; :&gt; Capture &quot;isbn&quot; Text :&gt; Get '[JSON] Book

server :: Server MyApi
server = getBook
  where getBook :: Text -&gt; Handler Book
        getBook isbn = ...</pre></td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:15" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Capture.html#t:Capture">Capture</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> capture a) api) (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> k1 (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Capture.html#t:Capture">Capture</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> capture a) api) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Capture.html#t:Capture">Capture</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> capture a) api) context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Capture.html#t:Capture">Capture</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> capture a) api) context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:16" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:16')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-TypeLits.html#t:KnownSymbol">KnownSymbol</a> path, <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> k1 api context) =&gt; <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> k1 path api) context</span> <a href="src/Servant-Server-Internal.html#line-455" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc"><p>Make sure the incoming request starts with <code>&quot;/path&quot;</code>, strip it and
 pass the rest of the request path to <code>api</code>.</p></td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:16" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> k1 path api) (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">(:&gt;)</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> k1 path api) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) path api) context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> ((<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Sub.html#t::-62-">:&gt;</a> k1) path api) context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:17" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:17')"></span> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ContentTypes.html#t:AllCTRender">AllCTRender</a> ctypes a, <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Verbs.html#t:ReflectMethod">ReflectMethod</a> k1 method, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-TypeLits.html#t:KnownNat">KnownNat</a> status, <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ResponseHeaders.html#t:GetHeaders">GetHeaders</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ResponseHeaders.html#t:Headers">Headers</a> h a)) =&gt; <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Verbs.html#t:Verb">Verb</a> k1 <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> method status ctypes (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ResponseHeaders.html#t:Headers">Headers</a> h a)) context</span> <a href="src/Servant-Server-Internal.html#line-244" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:17" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Verbs.html#t:Verb">Verb</a> k1 <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> method status ctypes (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ResponseHeaders.html#t:Headers">Headers</a> h a)) (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Verbs.html#t:Verb">Verb</a> k1 <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> method status ctypes (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ResponseHeaders.html#t:Headers">Headers</a> h a)) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Verbs.html#t:Verb">Verb</a> k1 <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> method status ctypes (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ResponseHeaders.html#t:Headers">Headers</a> h a)) context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Verbs.html#t:Verb">Verb</a> k1 <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> method status ctypes (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ResponseHeaders.html#t:Headers">Headers</a> h a)) context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasServer:HasServer:18" class="instance expander" onclick="toggleSection('i:ic:HasServer:HasServer:18')"></span> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ContentTypes.html#t:AllCTRender">AllCTRender</a> ctypes a, <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Verbs.html#t:ReflectMethod">ReflectMethod</a> k1 method, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-TypeLits.html#t:KnownNat">KnownNat</a> status) =&gt; <a href="Servant-Server-Internal.html#t:HasServer">HasServer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Verbs.html#t:Verb">Verb</a> k1 <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> method status ctypes a) context</span> <a href="src/Servant-Server-Internal.html#line-234" class="link">Source</a> <a href="#t:HasServer" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:HasServer:HasServer:18" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Verbs.html#t:Verb">Verb</a> k1 <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> method status ctypes a) (context :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Verbs.html#t:Verb">Verb</a> k1 <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> method status ctypes a) (m :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a>) :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <a href="src/Servant-Server-Internal.html#ServerT" class="link">Source</a> <a href="#t:ServerT" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:route">route</a> :: <a href="Servant.html#t:Proxy">Proxy</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Verbs.html#t:Verb">Verb</a> k1 <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> method status ctypes a) context -&gt; <a href="Servant-Server-Internal-Context.html#t:Context">Context</a> context -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal.html#t:Server">Server</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-Verbs.html#t:Verb">Verb</a> k1 <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> method status ctypes a) context) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#route" class="link">Source</a> <a href="#v:route" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:Server" class="def">Server</a> api = <a href="Servant-Server-Internal.html#t:ServerT">ServerT</a> api <a href="Servant-Server-Internal-ServantErr.html#t:Handler">Handler</a> <a href="src/Servant-Server-Internal.html#Server" class="link">Source</a> <a href="#t:Server" class="selflink">#</a></p></div><h1 id="g:1">Instances</h1><div class="top"><p class="src"><a id="v:allowedMethodHead" class="def">allowedMethodHead</a> :: <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Method.html#t:Method">Method</a> -&gt; <a href="file:///usr/share/doc/libghc-wai-doc/html/Network-Wai.html#t:Request">Request</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/Servant-Server-Internal.html#allowedMethodHead" class="link">Source</a> <a href="#v:allowedMethodHead" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:allowedMethod" class="def">allowedMethod</a> :: <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Method.html#t:Method">Method</a> -&gt; <a href="file:///usr/share/doc/libghc-wai-doc/html/Network-Wai.html#t:Request">Request</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/Servant-Server-Internal.html#allowedMethod" class="link">Source</a> <a href="#v:allowedMethod" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:processMethodRouter" class="def">processMethodRouter</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a>) -&gt; <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Status.html#t:Status">Status</a> -&gt; <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Method.html#t:Method">Method</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [(<a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Header.html#t:HeaderName">HeaderName</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>)] -&gt; <a href="file:///usr/share/doc/libghc-wai-doc/html/Network-Wai.html#t:Request">Request</a> -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:RouteResult">RouteResult</a> <a href="file:///usr/share/doc/libghc-wai-doc/html/Network-Wai.html#t:Response">Response</a> <a href="src/Servant-Server-Internal.html#processMethodRouter" class="link">Source</a> <a href="#v:processMethodRouter" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:methodCheck" class="def">methodCheck</a> :: <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Method.html#t:Method">Method</a> -&gt; <a href="file:///usr/share/doc/libghc-wai-doc/html/Network-Wai.html#t:Request">Request</a> -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:DelayedIO">DelayedIO</a> () <a href="src/Servant-Server-Internal.html#methodCheck" class="link">Source</a> <a href="#v:methodCheck" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:acceptCheck" class="def">acceptCheck</a> :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ContentTypes.html#t:AllMime">AllMime</a> list =&gt; <a href="Servant.html#t:Proxy">Proxy</a> list -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:DelayedIO">DelayedIO</a> () <a href="src/Servant-Server-Internal.html#acceptCheck" class="link">Source</a> <a href="#v:acceptCheck" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:methodRouter" class="def">methodRouter</a> :: <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ContentTypes.html#t:AllCTRender">AllCTRender</a> ctypes a =&gt; <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Method.html#t:Method">Method</a> -&gt; <a href="Servant.html#t:Proxy">Proxy</a> ctypes -&gt; <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Status.html#t:Status">Status</a> -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal-ServantErr.html#t:Handler">Handler</a> a) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#methodRouter" class="link">Source</a> <a href="#v:methodRouter" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:methodRouterHeaders" class="def">methodRouterHeaders</a> :: (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ResponseHeaders.html#t:GetHeaders">GetHeaders</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ResponseHeaders.html#t:Headers">Headers</a> h v), <a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ContentTypes.html#t:AllCTRender">AllCTRender</a> ctypes v) =&gt; <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Method.html#t:Method">Method</a> -&gt; <a href="Servant.html#t:Proxy">Proxy</a> ctypes -&gt; <a href="file:///usr/share/doc/libghc-http-types-doc/html/Network-HTTP-Types-Status.html#t:Status">Status</a> -&gt; <a href="Servant-Server-Internal-RoutingApplication.html#t:Delayed">Delayed</a> env (<a href="Servant-Server-Internal-ServantErr.html#t:Handler">Handler</a> (<a href="file:///usr/share/doc/libghc-servant-doc/html/Servant-API-ResponseHeaders.html#t:Headers">Headers</a> h v)) -&gt; <a href="Servant-Server-Internal-Router.html#t:Router">Router</a> env <a href="src/Servant-Server-Internal.html#methodRouterHeaders" class="link">Source</a> <a href="#v:methodRouterHeaders" class="selflink">#</a></p></div><h1 id="g:2">helpers</h1><div class="top"><p class="src"><a id="v:ct_wildcard" class="def">ct_wildcard</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> <a href="src/Servant-Server-Internal.html#ct_wildcard" class="link">Source</a> <a href="#v:ct_wildcard" class="selflink">#</a></p></div><h1 id="g:3">General Authentication</h1><h1 id="g:4">contexts</h1><div class="top"><p class="src">module <a href="Servant-Server-Internal-Context.html">Servant.Server.Internal.Context</a></p></div><div class="top"><p class="src">module <a href="Servant-Server-Internal-BasicAuth.html">Servant.Server.Internal.BasicAuth</a></p></div><div class="top"><p class="src">module <a href="Servant-Server-Internal-Router.html">Servant.Server.Internal.Router</a></p></div><div class="top"><p class="src">module <a href="Servant-Server-Internal-RoutingApplication.html">Servant.Server.Internal.RoutingApplication</a></p></div><div class="top"><p class="src">module <a href="Servant-Server-Internal-ServantErr.html">Servant.Server.Internal.ServantErr</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.2</p></div></body></html>