diff --git a/advanced/configuring_routers.html b/advanced/configuring_routers.html
index a27e21be..f4cc6f68 100644
--- a/advanced/configuring_routers.html
+++ b/advanced/configuring_routers.html
@@ -630,7 +630,7 @@
diff --git a/advanced/different_routers.html b/advanced/different_routers.html
index 71e03426..47783f16 100644
--- a/advanced/different_routers.html
+++ b/advanced/different_routers.html
@@ -621,7 +621,7 @@
diff --git a/advanced/index.html b/advanced/index.html
index c0e0461d..84367613 100644
--- a/advanced/index.html
+++ b/advanced/index.html
@@ -585,7 +585,7 @@
diff --git a/advanced/interceptors.html b/advanced/interceptors.html
index 20480941..0b687402 100644
--- a/advanced/interceptors.html
+++ b/advanced/interceptors.html
@@ -587,7 +587,7 @@
diff --git a/advanced/route_validation.html b/advanced/route_validation.html
index 4c4049cd..b12f35c0 100644
--- a/advanced/route_validation.html
+++ b/advanced/route_validation.html
@@ -725,7 +725,7 @@
diff --git a/basics/index.html b/basics/index.html
index b8b97737..45149ac2 100644
--- a/basics/index.html
+++ b/basics/index.html
@@ -588,7 +588,7 @@
diff --git a/basics/name_based_routing.html b/basics/name_based_routing.html
index 39d76d7a..91a4aa69 100644
--- a/basics/name_based_routing.html
+++ b/basics/name_based_routing.html
@@ -559,7 +559,7 @@
-
+
If not all path-parameters are set, a PartialMatch is returned:
@@ -567,7 +567,7 @@
-
+
(r/partial-match? (r/match-by-name router ::user))
@@ -579,7 +579,7 @@
-
+
There is also a exception throwing version:
(r/match-by-name! router ::user)
@@ -628,7 +628,7 @@
diff --git a/basics/path_based_routing.html b/basics/path_based_routing.html
index daa20f58..5ffe2af7 100644
--- a/basics/path_based_routing.html
+++ b/basics/path_based_routing.html
@@ -561,7 +561,7 @@
-
+
@@ -606,7 +606,7 @@
diff --git a/basics/route_conflicts.html b/basics/route_conflicts.html
index 4706ee5f..fd57619d 100644
--- a/basics/route_conflicts.html
+++ b/basics/route_conflicts.html
@@ -623,7 +623,7 @@
diff --git a/basics/route_data.html b/basics/route_data.html
index 6ae3466a..a5495b45 100644
--- a/basics/route_data.html
+++ b/basics/route_data.html
@@ -558,14 +558,14 @@
-
+
(r/match-by-name router ::ping)
-
+
Nested route data
@@ -609,7 +609,7 @@
-
+
@@ -655,7 +655,7 @@
diff --git a/basics/route_data_validation.html b/basics/route_data_validation.html
index c6a429fd..0c4a9d37 100644
--- a/basics/route_data_validation.html
+++ b/basics/route_data_validation.html
@@ -699,7 +699,7 @@
diff --git a/basics/route_syntax.html b/basics/route_syntax.html
index d2c39229..2c1cccf2 100644
--- a/basics/route_syntax.html
+++ b/basics/route_syntax.html
@@ -636,7 +636,7 @@
diff --git a/basics/router.html b/basics/router.html
index 00f266d1..11844020 100644
--- a/basics/router.html
+++ b/basics/router.html
@@ -616,7 +616,7 @@
diff --git a/coercion/clojure_spec_coercion.html b/coercion/clojure_spec_coercion.html
index 552405ad..f38db9d1 100644
--- a/coercion/clojure_spec_coercion.html
+++ b/coercion/clojure_spec_coercion.html
@@ -567,7 +567,7 @@
-
+
@@ -618,7 +618,7 @@
diff --git a/coercion/coercion.html b/coercion/coercion.html
index 66c54999..d2a85059 100644
--- a/coercion/coercion.html
+++ b/coercion/coercion.html
@@ -549,7 +549,7 @@
-
+
To enable parameter coercion, the following things need to be done:
@@ -588,7 +588,7 @@
-
+
Coercion was not applied. Why? In Reitit, routing and coercion are separate processes and we haven't applied the coercion yet. We need to apply it ourselves after the successfull routing.
@@ -617,7 +617,7 @@
-
+
The compiler added a :result key into the match (done just once, at router creation time), which holds the compiled coercers. We are almost done.
@@ -661,7 +661,7 @@
-
+
@@ -719,7 +719,7 @@
diff --git a/coercion/data_spec_coercion.html b/coercion/data_spec_coercion.html
index e270b627..c465a0e3 100644
--- a/coercion/data_spec_coercion.html
+++ b/coercion/data_spec_coercion.html
@@ -561,7 +561,7 @@
-
+
@@ -612,7 +612,7 @@
diff --git a/coercion/index.html b/coercion/index.html
index 2bc1dfbe..92e57664 100644
--- a/coercion/index.html
+++ b/coercion/index.html
@@ -585,7 +585,7 @@
diff --git a/coercion/schema_coercion.html b/coercion/schema_coercion.html
index 5b89dc2b..bbc79cba 100644
--- a/coercion/schema_coercion.html
+++ b/coercion/schema_coercion.html
@@ -562,7 +562,7 @@
-
+
@@ -613,7 +613,7 @@
diff --git a/faq.html b/faq.html
index f67b9d31..cb0c3e6e 100644
--- a/faq.html
+++ b/faq.html
@@ -576,7 +576,7 @@ best parts of existing libs, added things that were missing (like first-class ro
diff --git a/index.html b/index.html
index 191900ae..d65669df 100644
--- a/index.html
+++ b/index.html
@@ -545,7 +545,12 @@
Modular
Fast
-There are also a separate Ring-router module with data-driven middleware.
+The following higher-level routers are also available as separate modules:
+
To use Reitit, add the following dependecy to your project:
[metosin/reitit "0.1.0-SNAPSHOT"]
@@ -573,14 +578,14 @@
-
+
(r/match-by-path router "/api/orders/1")
-
+
Reverse-routing:
@@ -591,14 +596,14 @@
-
+
(r/match-by-name router ::order-by-id)
-
+
(r/partial-match? (r/match-by-name router ::order-by-id))
@@ -608,7 +613,7 @@
-
+
Ring-router
@@ -648,7 +653,7 @@
-
+
@@ -690,7 +695,7 @@
diff --git a/performance.html b/performance.html
index f482be45..63656f71 100644
--- a/performance.html
+++ b/performance.html
@@ -659,7 +659,7 @@
diff --git a/ring/coercion.html b/ring/coercion.html
index d63d6213..ea1ed908 100644
--- a/ring/coercion.html
+++ b/ring/coercion.html
@@ -718,7 +718,7 @@
diff --git a/ring/compiling_middleware.html b/ring/compiling_middleware.html
index c858a3a5..512144c7 100644
--- a/ring/compiling_middleware.html
+++ b/ring/compiling_middleware.html
@@ -641,7 +641,7 @@
diff --git a/ring/data_driven_middleware.html b/ring/data_driven_middleware.html
index baec0f93..91822bd1 100644
--- a/ring/data_driven_middleware.html
+++ b/ring/data_driven_middleware.html
@@ -699,7 +699,7 @@
diff --git a/ring/dynamic_extensions.html b/ring/dynamic_extensions.html
index eefc2c38..9af50044 100644
--- a/ring/dynamic_extensions.html
+++ b/ring/dynamic_extensions.html
@@ -614,7 +614,7 @@
diff --git a/ring/index.html b/ring/index.html
index c53df9aa..2d9a7e33 100644
--- a/ring/index.html
+++ b/ring/index.html
@@ -587,7 +587,7 @@
diff --git a/ring/ring.html b/ring/ring.html
index 9d852b6f..b87d9179 100644
--- a/ring/ring.html
+++ b/ring/ring.html
@@ -730,7 +730,7 @@
diff --git a/ring/route_data_validation.html b/ring/route_data_validation.html
index ee324ec2..e513e83d 100644
--- a/ring/route_data_validation.html
+++ b/ring/route_data_validation.html
@@ -825,7 +825,7 @@
diff --git a/search_index.json b/search_index.json
index 50c8abc5..7444874c 100644
--- a/search_index.json
+++ b/search_index.json
@@ -1 +1 @@
-{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["\"/api/admin/users\"})","\"/api/ipa\")","\"/api/orders/1\")","\"/api/orders/1\"}","\"/api/orders/2\"}","\"/api/orders/:id\"","\"/api/orders/:id\",","\"/api/ping\"","\"/api/ping\")","\"/api/ping\"}","\"0.1.0","\"1\"}","\"ok\",","\"ok\"})","#match{:templ","#methods{...}","#object[user$handler]}","#partialmatch{:templ","#reitit","#{:id}}","&","'())","'[reitit.cor","'[reitit.r","(","(:api","(app","(clojure.spec),","(def","(defn","(fn","(fnil","(handler","(r/match","(r/partial","(r/router","(requir","(ring/get","(ring/r","(ring/rout","(schema","(updat","200,","2})","2},","::ipa)","::order","::ping)","::ping))","::ping]","::ping}","::ping}]",":a",":admin]]}",":admin}",":api]]",":api]]}",":bodi",":data",":get",":get,",":handler",":middlewar",":name",":param",":path",":post",":put,",":request",":requir",":result",":uri",":user/ord",":wrap",";",">","[\"/admin\"","[\"/api\"","[\"/api/orders/:id\"","[\"/ping\"","[\"/users\"","[[\"/api/ping\"","[[#object[user$wrap]","[[wrap","[_]","[handler","[metosin/reitit","[request]","add","app","base","bi","channel","class","clojure(script)","clojure.spec)","clojurian","coercion","compilation,","conflict","conj","core","data","dependeci","direct","discussions,","driven","dynam","exampl","extend","extens","fast","first","follow","functions,","handler","handler}]]])))","id","id)","id))","id)))","id]","id]]))","id}","id},","introduct","librari","match?","method","method.","middlewar","middleware,","middleware.","modul","modular","more.","name","nil","nil,","optionally,","paramet","part","path","pluggabl","project:","r])","reitit","reitit,","request)","requir","resolut","revers","ring","ring])","rout","router","router)","routing.","routing:","schema","separ","separately:","simpl","slack.","small","snapshot\"]","spec","support","syntax","true","us","wrap","{:get","{:handler","{:id","{:middlewar","{:name","{:request","{:statu","{}"],"basics/":["base","basic","conflict","data","name","path","rout","router","syntax","valid"],"basics/route_syntax.html":["\"/\"","'add","'get","(*path).","(:id)","([\"/get","(condp","(cqr","(defn","(for","(if","(name","(non","(str","::admin]","::admin}]","::db]]","::db]}","::db}]","::dev","::ping]","::ping]]","::ping}]]","::pong}]]",":command",":get",":let",":name",":post)]]",":queri",";","=","[\"\"","[\"/add","[\"/admin\"","[\"/api\"","[\"/api/:version/ping\"]]","[\"/api/admin/db\"","[\"/api/ping\"","[\"/db\"","[\"/dev","[\"/ping\"","[\"/ping\"]","[\"/pong\"","[\"/pong\"]]","[\"/public/*path\"]","[::admin],","[::admin]}","[::api","[:command","[[\"/api/admin\"","[[\"/ping\"","[[\"/ping\"]","[[\"/users/:us","[[:queri","[[type","[action","[add","[get","[interceptor]}}])","[path","action","argument","arguments:","catch","child","cqr","creat","data,","defin","dev","easi","exampl","false)","flattened:","gener","id\"]","ignored.","interceptor))","interceptor]","it'","list","method","mode?","mode?]","nest","nil","nil]","option","order\"","order]]","order]}}])","paramet","parameter:","parameters:","path","programmatically:","rout","route:","routes.","routes:","same","sequential)","simpl","string","syntax","tools\"","tools])])","two","type","user\"","user]","user]}}]","vector","wrap","{:get","{:interceptor","{:middlewar","{:name","{:post","{method"],"basics/router.html":["'[reitit.cor","(def","(defprotocol","(match","(option","(r/rout","(r/router","(requir","(rout","(router","(via","::ping]","::user]]]))",":a",":mix",":user/ping}]",":user/user}]]",";","[\"/api/user/:id\"","[\"/ping\"","[\"/user/:id\"","[[\"/api\"","[[\"/api/ping\"","[thi","[this])","actual","argument","behind","coerc","compil","conflict","creat","created,","data","done:","expand","flatten","follow","function,","get","implement","instanc","map.","name","name]","need","option","params]))","path","path])","protocol)","protocol.","protocol:","r])","raw","reitit.core/expand","reitit.core/rout","resolv","rout","router","router)","router:","routing,","satisfi","scene","select","step","take","tree","tree:","{:name"],"basics/path_based_routing.html":["\"/api/user/1\"","\"/api/user/1\")","\"/api/user/:id\"","\"/hello\")","\"1\"}}","#match{:templ","'[reitit.cor","(def","(onli","(r/match","(r/router","(requir","::ping]","::user]]]))",":a",":data",":param",":path",":result",":user/user}",";","[\"/ping\"","[\"/user/:id\"","[[\"/api\"","argument","base","done","exact","following:","function.","given","information:","match","match,","matched,","miss","nil","nil,","nil:","on","paramet","partialmatch,","path","provid","r])","reitit.core/match","return","revers","rout","router","router:","routing)","take","us","{:id","{:name"],"basics/name_based_routing.html":["\"/api/ping\"","\"/api/ping\"}","\"/api/user/1\"","\"/api/user/:id\"","\"/api/user/:id\",","\"1\"})","\"1\"}}","#match{:templ","#partialmatch{:templ","#{:id}","#{:id}}","'[reitit.cor","(def","(r/match","(r/partial","(r/rout","(r/router","(requir","(reverse)","/api/user/:id:","::kikka)","::ping)","::ping]","::user","::user)","::user))","::user]]]))",":a",":data",":name",":param",":path",":requir",":result",":user/ping}",":user/user]",":user/user}",":user/user},",";","[\"/ping\"","[\"/user/:id\"","[:user/p","[[\"/api\"","base","data","defined,","except","exceptioninfo","given","list","match","match?","miss","name","name!","name.","names:","nil","nil,","nil:","param","paramet","parameters:","partialmatch","path","provid","r])","return","returned:","rout","route:","router","router)","router:","set,","throw","true","version:","{:id","{:name","{}"],"basics/route_data.html":["\"/ping\"","\"/ping\")","\"/ping\"}","#match{:templ","#{:admin}","#{:admin}}","#{:db","'[reitit.cor","(def","(r/match","(r/rout","(r/router","(requir","::db]","::ping)","::ping]","::users]","::users}",":a",":append,",":coerc",":compil",":data",":displac",":handler",":name",":param",":path",":prepend,",":replac",":result",":role",":user/ping}",":user/ping}]",";","[\"/admin\"","[\"/api\"","[\"/api/admin/db\"","[\"/api/admin/users\"","[\"/db\"","[\"/ping\"","[\"/pong\"","[\"/users\"","[::api","[::api]","[::api]}","[::db]","[[\"/api/ping\"","[[\"/ping\"","^:replac","accumul","adapt","add","admin}}]]","admin}}]]]))","applic","argument","arguments.","attacht","behavior","both","case","cheng","client","clojure.spec","co","colect","components.","created.","custom","data","data.","data:","default","default,","easi","enabl","exampl","exist","expand","expans","function","heart","hooks.","identity]","identity]}","identity}}]]","identity}}]]))","implement","interpet","it'","key","keyword","leaf","library.","map","map.","match","match.","merge.","meta","name","nest","nil","nil]","non","on","options.","overridden","path","principl","protocol","r])","recurs","reitit/expand","resolv","retriev","return","root","rout","router","router)","sequenti","target","them.","togeth","toward","tree:","trees,","us","valid","via","whole","{:get","{:handler","{:interceptor","{:name","{:role","{}"],"basics/route_data_validation.html":["\"/api\"","\"/api\",","\"clojure.core$identity@15b59b0e\"],","\"clojure.core$identity@15b59b0e\"]}","\"clojure.core$identity@15b59b0e\"]},","\"clojure.core$identity@15b59b0e\"]}}})},","\"clojure.spec.alpha$merge_spec_impl$reify__2124@7461744b\"],","\"identity\"","\"identity\",","\"identity\"},","\"identity\"}]","\"identity\"}])","\"identity\"}}})},","#:clojure.spec.alpha{:problem","#object[clojure.core$ident","#object[clojure.spec.alpha$merge_spec_impl$reify__2124","#object[reitit.core$...]","#{:admin","#{:adminz}}","#{:adminz}},","#{:adminz}}]","#{:adminz}}}})},","#{})","#{}))","%","'[clojure.spec.alpha","'[expound.alpha","'[reitit.cor","'[reitit.spec","(#reitit.spec.problem{:path","()","(clojure.core/contains?","(clojure.core/fn","(clojure.spec.alpha/col","(clojure.spec.alpha/key","(coll","(default","(r/router","(requir","(s/coll","(s/def","(s/key","(s/merg","({:path","+","...","...,","0]}),","0x15b59b0e","0x7461744b","1","2","::role","::rs/default","::rs/explain",":a",":adminz,",":coerc",":compil",":data",":in",":into",":manager}",":manager})",":manager},",":opt",":pred",":problem",":reitit.spec/default",":reitit.spec/handl",":reitit.spec/handler])",":reitit.spec/handler],",":req",":role",":scope",":spec",":user/rol",":user/role:",":user/role],",":user/roles)),",":user/roles:",":val",":valid",":valu",":via",";","=>","[\"/api\"","[%]","[::roles])","[:handler]","[:handler],","[:handler]}),","[:reitit.spec/default","[:reitit.spec/nam","[:user/rol","[:user/roles],","[],","[]}),","^^^^^^^","`:admin`,`:manager`","`:user/roles`","accident","anything,","app","appli","ariti","at:","author","below","better","case","clojure.core/fn?,","clojure.lang.exceptioninfo:","clojure.spec","clojure.spec.alpha/explain","compiled.","compilerexcept","compiling:","compiling:(/users/tommi/projects/metosin/reitit/test/cljc/reitit/spec_test.cljc:151:1)","contain","custom","data","data)","data,","data:","descript","detect","e/expound","e])","easi","effect","error","errors.","exampl","except","exist","expect","explain","explicitli","expound","fail","fast","fast,","first","fn?","follow","found.","fulli","function","helper","hook","ident","identity}]","implicitli","in:","instead","invalid","it'","key","key:","main","mistakes.","name.","namespac","nil,","note:","of:","on","on:","opt","options:","part","place.","predicate:","pretti","print","problem.","problems.","qualifi","r])","read","reitit.cor","reitit.spec","relev","render","requir","rout","router","rs/valid","rs])","run","s])","same","side","sight","spec","spec!","spec!})","spec:","str","str)","successfuli","throw","tree","turn","un","us","val:","valid","valu","verifi","way.","whole","without","{::rs/explain","{:handler","{:problem","{:spec","{:valid","|"],"basics/route_conflicts.html":["'[reitit.cor","(comp","(def","(r/router","(requir","/:user","/:version/statu","/bulk/:bulk","/public/*path",":a",":conflict",";",">","[\"/:user","[\"/:version/status\"]])","[\"/bulk/:bulk","[\"/public/*path\"]","[[\"/ping\"]","allow","callback.","clojure.lang.exceptioninfo:","compilerexcept","conflicit","conflict","conflicts:","contain","created.","default","default,","descript","effec","especi","ex","exampl","exceptioninfo","explicit","first","good,","id","id\"]","id/ord","id/orders\"]","implement","info","librari","log","lookup,","make","match","merg","message.","multipl","pass","path","println","r])","reitit","reitit/conflict","resolut","resolv","rest","rout","router","router.","routes)","routes:","run","sources.","str)})","throw","thrown:","tree","unreachable.","us","within","{:conflict"],"coercion/":["clojure.spec","coercion","data","explain","plumat","schema","spec"],"coercion/coercion.html":["\"/:company/users/:us","\"/metosin/users/123\")","\"/metosin/users/123\"))","\"/metosin/users/123\"}","\"/metosin/users/ikitommi\")","\"/metosin/users/ikitommi\"))","\"123\"},","\"ikitommi\"))}}","\"metosin\",","#coercionerror{:schema","#match{:templ","#object[reitit.coercion$request_coercer$]},","'[reitit.coercion","'[reitit.coercion.schema])","'[reitit.cor","'[schema.cor","(:reitit.coercion/request","(and","(assoc","(coercion/coerce!","(core.clj:4739)","(def","(defn","(done","(if","(integer?","(match","(not","(r/match","(r/router","(requir","(with","123}}","::user",":a",":body,",":coercion",":data",":error",":form,",":header",":param",":paramet",":parameters.",":path",":path.",":query,",":result",":user",":user/us",";","=>",">","[\"/:company/users/:us","[match","[path]","actual","ad","again:","against","another.","any},","api","appli","applied.","apply.","attach","back.","base","befor","better","blown","both","catch","clojure.core/ex","clojure.spec","coerc","coerce!","coercer","coercers.","coercers}))","coercion","coercion)","coercion,","coercion.","coercion/compil","coercion])","compil","compojur","creation","data","data.","default,","defin","defined).","defined,","depend","differ","do","done","done.","done:","effect","enabl","enough","error:","exampl","exceptioninfo","explain","explicit","failed...","failed:","fails,","follow","format","full","function","haven't","helper","here'","hold","http","id","id\"","id\",","implement","implementation.","info","initi","int,","interceptor","int}}},","inventoried.","java.lang.string,","key","key.","level,","magical.","make","manual","match","match))))","match:","middleware,","modules:","much","multipl","need","nil,","non","normal","now","on","once,","ourselv","paramet","parameters:","paremet","pars","path","path)]","perform","plumat","process","protocol","r","r])","reitit","reitit,","reitit.coercion.schema/coercion","reitit.coercion.spec/coercion","reitit.coercion/coerce!","reitit.coercion/coercion","reitit.coercion/compil","request","responses)","ring","rout","router","router,","router.","routing.","rule","s/int}}}]","s/int}}}]))","s/str","s])","schema","schema:","scope","see","separ","ship","singl","spec","step","steps.","strings:","successful","syntax","thank","thing","this:","thrown,","time),","tool","transform","two","type","under","us","via","view","view,","view]))","view},","why?","wildcard","within","yet.","yield","{:compani","{:compil","{:name","{:path","{:user"],"coercion/schema_coercion.html":["\"/:company/users/:us","\"/metosin/users/123\")","\"/metosin/users/123\"}","\"/metosin/users/ikitommi\")","\"123\"},","\"metosin\",","#match{:templ","#object[reitit.coercion$request_coercer$]},","'[reitit.coercion","'[reitit.coercion.schema])","'[reitit.cor","'[schema.cor","(assoc","(coercion/coerce!","(def","(defn","(if","(match","(r/match","(r/router","(requir","123}}","::user",":a",":coercion",":data",":param",":paramet",":path",":result",":user",":user/us",";","=>",">","[\"/:company/users/:us","[match","[path]","clojure(script)","coerce!","coercers}))","coercion","coercion/compil","coercion:","coercion])","data","declar","descript","exceptioninfo","fail","failed...","id","id\"","id\",","int}}},","java.lang.string,","librari","match","match))))","path","path)]","plumat","r])","reitit.coercion.schema/coercion","request","router","s/int}}}]","s/str","s])","schema","success","validation.","view","view,","{:compani","{:compil","{:name","{:path"],"coercion/clojure_spec_coercion.html":["\"/:company/users/:us","\"/metosin/users/123\")","\"/metosin/users/123\"}","\"/metosin/users/ikitommi\")","\"123\"},","\"metosin\",","#match{:templ","#object[reitit.coercion$request_coercer$]},","'[clojure.spec.alpha","'[reitit.coercion","'[reitit.coercion.spec])","'[reitit.cor","'[spec","(assoc","(coercion/coerce!","(def","(defn","(if","(match","(r/match","(r/router","(requir","(s/def","(s/key","123}}","::compani","::path","::user",":a",":coercion",":data",":param",":paramet",":path",":req",":result",":user",":user/us",";",";;","=>",">","[\"/:company/users/:us","[::compani","[match","[path]","base","clojure.spec","coerce!","coercers}))","coercion","coercion/compil","coercion:","coercion])","conforming,","currently,","data","data,","destructur","doesn't","exceptioninfo","fail","failed...","gener","id","id\"","id\",","id]))","it,","librari","match","match))))","need","note:","on","param","params}},","params}}]","path","path)]","primitives!","r])","record","reitit.coercion.spec/coercion","request","router","runtim","s])","spec","spec.","spec/int?)","spec/string?)","spec])","specifi","structur","success","support","tools.spec","transform","un","valid","via","view","view,","working.","wrap","{:compani","{:compil","{:name","{:path"],"coercion/data_spec_coercion.html":["\"/:company/users/:us","\"/metosin/users/123\")","\"/metosin/users/123\"}","\"/metosin/users/ikitommi\")","\"123\"},","\"metosin\",","#match{:templ","#object[reitit.coercion$request_coercer$]},","'[reitit.coercion","'[reitit.coercion.spec])","'[reitit.cor","(assoc","(coercion/coerce!","(def","(defn","(if","(match","(r/match","(r/router","(requir","123}}","::user",":a",":coercion",":data",":param",":paramet",":path",":result",":user",":user/us",";","=>",">","[\"/:company/users/:us","[match","[path]","alternative,","bonus,","box.","clojure.specs.","coerce!","coercers}))","coercion","coercion/compil","coercion:","coercion])","conform","data","defin","exceptioninfo","fail","failed...","free","id","id\"","id\",","int?}}},","int?}}}]","macro","match","match))))","out","path","path)]","r])","reitit.coercion.spec/coercion","request","router","runtim","spec","string?","string?,","success","support","syntax","transform","via","view","view,","{:compani","{:compil","{:name","{:path"],"advanced/":["advanc","configur","differ","interceptor","rout","router","valid"],"advanced/configuring_routers.html":["#{route}}","()","(data)","(default",":coerc",":compil",":conflict",":data",":expand",":path",":rout",":router",":spec",":valid","=>","[])","actual","arg","avail","base","clojure.spec","coerc","compil","configur","conflict","conflicts!)","data","data,","definit","descript","effect","expand","follow","function","handl","handler","implement","initi","key","nil","opt","option","options.","overrid","path","reitit.core/expand)","reitit.core/router:","reitit.core/throw","reitit.spec","resolv","result","return","rout","route,","router","see","side","throw","us","valid","via","{rout","{})"],"advanced/different_routers.html":["'[reitit.cor","(def","(r/router","(requir","::ping]","::users]]))",":a",":linear",":lookup",":mix",":router",":segment",":singl",";","[\"/api/:users\"","[[\"/ping\"","ask","base","catch","configur","conflicts.","creat","descript","differ","expand","fast","faster","found.","function","hash","implement","implementation.","inspect","intern","kind","lookup","manual","match","much","name","on","optim","option,","origin","out","paramet","path","pedest","protocol,","r])","reitit","resolv","rout","route.","router","router)","router,","router:","routers.","routes.","search","see","select","set","sever","ship","slow,","start","static","sting","suitabl","super","table.","top","trees.","trie","until","us","valid","wildcard","work"],"advanced/route_validation.html":["\"/\"))","\"/\")))","\"/\"))))","\"0.4.0\"]","\"tenant1\"","#'reitit.core/rout","%","%)","'[clojure.spec.alpha","'[clojure.spec.test.alpha","'[expound.alpha","'[reitit.cor","'[reitit.spec","'[reitit.spec])","(*","(?","([\"/api\"","([...","(and","(blank?","(cat","(clojure.core/fn","(clojure.core/or","(clojure.spec.alpha/*","(clojure.spec.alpha/?","(clojure.spec.alpha/and","(clojure.spec.alpha/cat","(clojure.spec.alpha/col","(clojure.spec.alpha/nil","(clojure.spec.alpha/or","(clojure.string/blank?","(clojure.string/start","(def","(fn","(nilabl","(or","(r/router","(requir","(s/explain","(s/valid?","(set!","(start","(stest/instru","...","...])","2","::spec/raw","::tenant1])",":a",":arg",":child",":clojure.spec.alpha/spec",":clojure.spec.alpha/valu",":dev",":into",":path",":path]",":reitit.spec/arg)",":reitit.spec/path",":reitit.spec/path:",":reitit.spec/raw",":rout",":user/tenant1",":user/tenant1]",";","[\"/api\"","[\"/ping\"]","[\"/public\"","[\"pong\"]]])","[\"tenant1\"","[%]","[...","[0]","[1]","[:rout","[:routes]","[]))","[expound","^^^^^^","`reitit/router)","add","argument","at:","bootstrapping:","call","clojure.core/string?","clojure.lang.exceptioninfo:","clojure.spec","compilerexcept","conform","contain","db","db)","definit","depend","detect","develop","error","exampl","expound","expound/printer)","expound])","fail","fals","first","function","go:","higher","in:","instrument","namespac","options.","out*","predicate:","pretti","print","problems.","r])","raw","readi","reitit.core/rout","reitit.spec","relev","rout","route))))","route:","router","routes,","routes:","s/*explain","s])","satisfi","spec","spec:","spec])","stest])","time","to:","tool","us","val:","valid","with?"],"advanced/interceptors.html":["(coericon)","clojure(script)","doc","interceptor","interceptors.","middlewar","pedest","port","progress","reitit","runner?","sampl","separ","style","support","work"],"ring/":["coercion","compil","data","driven","dynam","extens","middlewar","pluggabl","ring","rout","router","valid"],"ring/ring.html":["\"\"}","\"\"})","\"\"})))","\"/\"})","\"/api/admin/db\"})","\"/api/ping\"})","\"/favicon.ico\"})","\"/invalid\"})","\"/ping\"","\"/ping\"})","\"/pong\"})","\"kosh\"}","\"kosh\"})","\"kosh\"})})))","\"ok\"}","\"ok\"})","#endpoint{:data","#methods{:ani","#object[...],","#object[...]}","#object[...]},","%","&","'[reitit.r","(","(app","(conj","(constantli","(def","(defn","(fn","(fnil","(handler","(no","(reitit/match","(reitit/routes))","(requir","(ring/creat","(ring/get","(ring/r","(ring/rout","(updat","2","200,","3","404,","405,","406,","::acc","::ping","::ping)",":a",":admin",":admin]]}",":api)]}",":bodi",":db",":db]]",":delet",":delete,",":delete]]",":get",":get,",":handler",":handler)})",":handler]}",":head,",":method",":middlewar",":not",":options,",":patch,",":path)",":post",":post,",":put,",":put.",":request",":uri",";",">","?arg","[\"/admin\"","[\"/api\"","[\"/db\"","[\"/ping\"","[\"/pong\"","[#(wrap","[::acc]}]","[:api","[[\"/ping\"","[[wrap","[])","[]}}]]","[_]","[handler","[request]","[{:key","acc","accept","ad","add","allow","app","app:","appli","args.","argument","ariti","async","base","both","built","chain","clojur","clojurescript,","compil","compiler,","conj","correct","correctly:","creat","custom","default","default,","defaults:","defined.","differenti","element","ensur","error","expand","following:","found","found.","function","function.","handl","handler","handler)))","handler:","handler]","handler])","handler])))","handlers,","handler}]","handler}])))","handler}}]]])))","http","id))))","id]","it'","key,","keys:","level","look","match,","matched)","matched),","matches,","method","method.","methods.","middlewar","middleware:","more","name","nest","nil","nil).","nil)]])","node.j","normal","note","optim","optin","provid","reitit.ring/rout","request","respons","responses,","responses:","results:","resut","return","returned,","revers","ring","ring/creat","ring:","ring])","rout","router","router)","routing:","run","second","set","show","simpl","stuctur","submap.","support","third","too.","top","under","us","used.","valid","valu","vector","vector.","work","wrap","{:get","{:handler","{:middlewar","{:name","{:not","{:request","{:statu","{:uri"],"ring/dynamic_extensions.html":["\"/api/admin/ping\",","\"/api/admin/ping\"})","\"/api/ping\"})","\"forbidden\"}","\"ok\"}","\"ok\"}))","#{:admin}}","#{:admin}})","'[clojure.set","(and","(app","(constantli","(def","(defn","(effect","(fn","(handler","(if","(let","(not","(requir","(ring/get","(ring/r","(ring/rout","(seq","(set/subset?","(some","200,","403,","::role","::roles)]",":a",":bodi",":data",":get,",":uri",";",">","[\"/admin\"","[\"/ping\"","[::roles]","[[\"/api\"","[handler]","[requir","[wrap","[{:key","access","ad","anonym","app","author","base","build","data","dynam","enforc","exampl","extens","extract","guard","handler","handler]","handler]]]]","hoc","inject","match","match)","match.","method","middlewar","mount","public","reitit.ring/get","request","request)))))","request}]","requir","required)","ring","role","roles)))","roles:","roles]}})))","rout","route:","router","routes):","runtim","set])","system.","us","user","via","wrap","{::role","{:data","{:middlewar","{:request","{:statu"],"ring/data_driven_middleware.html":["\"/api/ping\"})","\"middlewar","#(interleav","#{:session}","#{:user}","%","&","'[reitit.middlewar","'[reitit.r","(actually,","(app","(conj","(def","(defn","(duct/integrant/macchiato","(fn","(fnil","(handler","(middleware/cr","(of","(optimized)","(optional)","(repeat","(requir","(ring/r","(ring/rout","(updat","1","1]","2","200,","2]]}","3","3]]","::acc","::wrap2","::wrap3",":a",":bodi",":compil",":debug",":debug]))})))",":descript",":get,",":handler",":handler)})",":handler]}",":middlewar",":name",":provides.",":reitit.middleware/transform",":requir",":spec",":uri",":wrap",";","=>","[\"/api\"","[\"/ping\"","[1","[3","[::acc]}]","[[wrap","[[wrap3","[])","[handler","[request]","[wrap","[wrap2","[{:key","acc","access","actual","ad","against","againt","allowed.","api","app","appli","arbitrari","arg","authorizationmiddlewar","avail","between","bubblin'","chain","chain,","class","clojure.spec","coerc","commun","compil","compilation.","compos","composit","conj","correctly:","creat","data","data,","data:","debug","default,","defin","definit","depend","descript","details.","doc","downsid","driven","duct","e.g.","easi","enabl","endpoint","endpoint.","entri","etc.","expans","extern","extra","first","follow","form","function","function,","function.","functions,","good","handler","handler}}]]","handler}}]])))","hard.","id))))","id]","idea","ident","injectuserintorequestmiddlewar","inventories,","issu","it'","key","keys,","keyword","level","make","map","merg","method","middlewar","middleware)","middleware,","middleware.","middleware])","name","new","normal","opaqu","optim","option","order.","packag","penalty.","per","performance.","processing,","produc","protocol.","provid","purpose:","qualifi","raw","re","record","registri","rehost","reitit","reitit.middleware/intomiddlewar","reitit.middleware/middlewar","rel","repo","request","request.","requir","resolut","respons","response.","results,","return","revers","reverse)})))","ring","ring])","roadmap","rout","router","router):","router.","runtim","see","set","special","stuffm?","style","style)","support","thing","things.\"","thu","top","transform","type","undelay","under:","understand","unwrap","us","valid","valu","vector","welcom","wrap","wrap2","wrap3","wrap})","wrap}))","wrong","yield","zero","{::middleware/transform","{:get","{:middlewar","{:name","{:request","{:statu"],"ring/coercion.html":["\"(constrain","\"(not","\"/api/ping\"})","\"/api/plus/3\"","\"1\"}","\"abba\"}","\"abba\"},","\"any\"","\"any\"},","\"int\",","\"pong\"}","\"pong\"})}]","'[reitit.coercion.schema])","'[reitit.cor","'[reitit.r","'[reitit.ring.coercion","'[schema.cor","'positiveint))","(","(+","(:query,","(app","(def","(fn","(integer?","(let","(mapv","(positiveint","(r/match","(requir","(ring/get","(ring/r","(ring/rout","(s/constrain","10}})","200","200,","2}})","400,","500,","6))\"},","6},","6}}","::mw/coerc","::ping","::ping)","::plu","::plus)",":a",":bodi",":body,",":body.",":body]}}",":coercion",":error",":form,",":get",":get,",":handler",":header",":in",":middlewar",":name)))",":paramet",":path",":path)",":post",":queri",":query,",":reitit.coercion/request",":reitit.coercion/respons",":respons",":result",":schema,",":type",":uri",":valu",":x)",":y)",":z))]",";",">",">>","[\"/api\"","[\"/ping\"","[\"/plus/:z\"","[::mw/coerc","[:request","[:respons","[]","[_]","[parameters]}]","[rrc/coerc","[total","[{:key","\\\"abba\\\"))\"},","actual","againt","also,","and/or","anything,","api","app","app)","appli","apply.","attach","basic","below","both","chain","clojure.spec","code","coerc","coerced.","coercer","coercion","coercion,","coercion.","compil","compojur","data","data.","defin","defined,","defined.","defined:","detail","doesn't","done:","enabl","endpoint","exampl","except","explain","follow","full","guide.","handler","handler/middlewar","here'","implement","initi","int","invalid","inventoried.","it'","itself","key","key.","method","middlewar","middleware:","middleware]}})))","models.","modules:","mount","multipl","mw","name","need","normal","optim","param","paramet","params]}}","plu","pluggabl","plumat","pos?","positiveint","positiveint)\"},","positiveint}}}","pretti","protocol","queri","r])","read","reitit","reitit,","reitit.coercion.schema/coercion","reitit.coercion.spec/coercion","reitit.coercion/coercion","reitit.ring.coercion:","request","request.","request:","respons","response:","response]","ring","ring,","ring])","rout","route.","router","router,","routes:","rrc/coerc","rrc])","rule","s/int","s/int}","s/int}}","s])","schema","schema:","scope","ship","singl","spec","step","success","swagger","syntax.","thank","thing","tool","total}}))})","total}}))}}]]","turn","type","under","us","valid","within","without","{\"x\"","{200","{:coercion","{:data","{:i","{:middlewar","{:name","{:queri","{:request","{:schema","{:statu","{:total","{:x","{:z"],"ring/route_data_validation.html":["\"/api/internal/users\"})","\"forbidden\"}","\"ok\"}","\"ok\"})","#{:admin","#{:admin}}}]]","#{:admin}}}]]]","#{:manager}","#{:manager}}","#{:public","#{}))","'[clojure.set","'[clojure.spec.alpha","'[expound.alpha","'[reitit.r","'[reitit.ring.spec","'[reitit.spec","(","(:get,","(and","(app","(def","(defn","(fn","(fulli","(handler","(if","(let","(not","(println","(requir","(ring/get","(ring/r","(ring/rout","(s/coll","(s/def","(s/key","(seq","(set/subset?","(some","(via","200,","403,","::role","::roles)]","::rs/explain","::zone",":a",":bodi",":data",":delet",":get",":intern",":internal}",":internal})",":into",":manager})",":middlewar",":post",":public",":public}",":req",":spec",":uri",":valid",":wrap",":zone",":zone)]",";",";;",">","[\"/api\"","[\"/api/internal/users\"","[\"/internal\"","[\"/ping\"","[\"/public\"","[\"/users\"","[::roles]","[::zone])","[[\"/api/public/ping\"","[_]","[handler]","[request]","[requir","[zone","[{:key","abil","about.","ad","alway","app","around","behavior","both","build","cleanli","clojure.spec","common","contribut","core","creation:","data","data:","defin","design,","differences:","dynam","e/expound","e])","effect","endpoint","endpoints.","enforc","etc.)","even","exampl","explicit","extens","fail","fast","feature,","few","fix","flatten","fulli","good:","handler","handler}","handler}]","handler}]]","handler}}]]]","harder","have","here","ignor","implicit","instead","invalid:","key","key.","keys)","keyset.","let'","match)","merg","method","middlewar","middleware)","middleware]}","miss","on:","option","path","power","powerful.","present","present:","problem:","push","qualifi","reason","reitit.ring.spec/valid","reitit.spec/valid","request","request)))))","request))))})","request}]","requir","required)","reus","reuse)","ring","ring])","role","roles)))","roles]","roles]}","roles]}]","roles]}]]","rout","router","router,","routes:","rrs/valid","rrs])","rs])","s/key","s])","scatter","separ","set])","silent","simpl","spec","spec!","specs.","str})))","sub","support","turn","un","us","valid","validation,","validation.","via","work","wrap","zone","zone)","{:data","{:get","{:handler","{:middlewar","{:name","{:request","{:statu","{:valid","{:zone"],"ring/compiling_middleware.html":["\"middlewar","#(respond","%))","%))))","'[reitit.spec","(","(:request","([request","([request]","(and","(coerc","(coercion/coerc","(coercion/respons","(compiled)","(def","(defn","(fn","(handler","(if","(let","(records,","(requir","(respons","(ring/get","50%","::coerc","::rs/respons",":a",":coercion",":coercion)",":compil",":compile.",":data",":opts)]",":respons",":responses)",":result",":spec",":wrap.","=>",">","?wrap.","[coercer","[coercion","[handler]","[method","[respons","[{:key","`reitit.coercion/coercion`","access","actual","approaches,","below","better.","but,","closur","code,","coerc","coercer","coercion","coercion.","compil","creation","data","data,","decid","defin","demonstr","dynam","easi","easier","enabl","enforc","etc.)","exact","expect","extend","extens","extract","fast","faster","faster.","function","handler","inform","instead","it?","itself","key","know","latter","less","link","local","lookup","match","method","middlewar","middleware/interceptor","mount","mount.\"","much","nil.","normal","nothing.\"","opt","opts)]","opts]","otherwis","pass","pluggabl","pre","processing.","provid","raise))))))","raise)))))))})","raise]","read","reason","reasoning:","record","relev","request","request)","request)))","request.","requir","respond","respons","response))","response)))","responses)","responses]}","return","ring","role","rout","router","rs])","runtim","shape","spec","system.","time.","to,","transform","two","type","us","validation.","via","want,","way","wrap","written","yield","{:name"],"performance.html":["\"/auth/login\")))","\"/workspace/1/1\")))","&","'[criterium.cor","'[reitit.cor","(ataraxy,","(cc/quick","(def","(dotim","(just","(matches,","(micro","(or","(per","(r/match","(r/router","(real","(requir","(static","(which","(wildcard",")benchmark","/api/command/add","1","1.9m","100","1000)","1000):","1000]","16","2,5","24x","256","3.2","300","312m","4","50+","500x","530","6",":",":a",":auth/login]",":auth/recovery]",":lookup",":mix",":request",":segment",":workspace/page]]))",";;","=>",">","[\"/auth/recovery/token/:token\"","[\"/workspace/:project/:page\"","[[\"/auth/login\"","[_","`lein","abstract","accur","actual","adopt","again,","against.","algorithm,","algorithms,","also,","alway","anoth","api","ataraxi","average,","back","base","baselin","bench","benchmark.","best","better","better,","between","bide","bidi,","both","box","busi","but,","cach","cache:","case,","case.","cc])","choos","ci","clojure(script),","code","command","compar","compil","compojur","comput","conflict","consist","constant,","contain","core","core):","cores:","cqr","created,","creation","data.","definit","definitions.","degrade.","depends.","differ","disabl","do","don't","e.g.","effect","enabl","ensur","environment.","error.","errors.","even","exampl","execut","fail","fallback","fast","fast),","fast.","faster","fastest","featur","few","first","flatten","follow","found","found,","function","gb","ghz","go.","great","handler.","have","help","here,","here.","hopefulli","http","i7","idea","identifier:","immut","implementation.","infinit","inlin","instead","intel","interceptor)","interest","intern","invok","it'","jvm","kb","know.","known","l2","l3","languages,","larg","large!","lib","librari","libs.","life","life)","long","look","lookup","lot","lot.","lupapiste.","macbook","macbookpro11,3","magnitud","magnitude.","manag","mani","map","maps)","match","matter","matter?","mb","mean","measur","measure?","memory:","method","mid","middlewar","middleware,","mind.","mix","model","more","mount","move","much","multimethod","multipl","mutabl","name:","nearli","need","new","non","not.","notabl","note:","nothing.","ns","number","ok","on","opensensor","ops/sec","optim","order","order.","origin","out","over","parameters.","partial","path","path)","path.","pedest","pedestal).","pedestal.","perf","perf.","perform","performance,","performance.","performance:","pleas","port","possibl","precompute/compil","prefix","pro","process","processor","processors:","proof","protocol","pull","queri","r])","rational","re","readme:","real","realistic.","realli","record","regress","reitit","repl","repl`","repo","request","resolut","rest","rest(ish)","result","rewritten","ring","rout","route(s)","router","router,","router.","routers.","routes)","routes,","run","same","sampl","scenario","scientif","second","segment","separ","serv","setup:","shine","simpl","site","size","slower","slowest","small","snappi","so,","someth","speed:","stabl","start","static","static,","still","style","swagger","tabl","take","taken","test","tests,","thank","thing","three","time","time,","tip","too).","total","tree","tree,","tree.","trees,","tri","trust","two","unmount","us","view","want","welcome.","well,","wildcard","work","yield","~200","~300","µs","µs."],"faq.html":["(like","ad","anoth","ask","best","both","class","clojure,","coercion","conflict","data,","exist","faq","fast.","felt","first","frequent","full","fun","great","lib","librari","library?","libs,","make","mani","miss","none","part","perfect.","pick","question","realli","really,","resolution)","rout","spec","thing","tri","us"]},"length":28},"tokenStore":{"root":{"0":{"docs":{},"]":{"docs":{},"}":{"docs":{},")":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}},"x":{"1":{"5":{"docs":{},"b":{"5":{"9":{"docs":{},"b":{"0":{"docs":{},"e":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.012371134020618556}}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"7":{"4":{"6":{"1":{"7":{"4":{"4":{"docs":{},"b":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"1":{"0":{"0":{"0":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"]":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}},"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},"docs":{},"}":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}},"2":{"3":{"docs":{},"}":{"docs":{},"}":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}},"docs":{}},"6":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"]":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}}},".":{"9":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"docs":{}}},"2":{"0":{"0":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902}},",":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"ring/ring.html":{"ref":"ring/ring.html","tf":0.016423357664233577},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}}}},"docs":{}},"4":{"docs":{},"x":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"5":{"6":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{}},"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}},"}":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}},",":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}},"}":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}},"]":{"docs":{},"]":{"docs":{},"}":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}}}}},",":{"5":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{}}},"3":{"0":{"0":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{}},"1":{"2":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"docs":{}},"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}},"]":{"docs":{},"]":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}}}},".":{"2":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{}}},"4":{"0":{"0":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}},"3":{"docs":{},",":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"4":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.009124087591240875}}}},"5":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526}}}},"6":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526}}}},"docs":{}},"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},"5":{"0":{"0":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},"x":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"docs":{},"%":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}},"+":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"3":{"0":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{}},"docs":{}},"6":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},")":{"docs":{},")":{"docs":{},"\"":{"docs":{},"}":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"}":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},"}":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"docs":{},"\"":{"0":{"docs":{},".":{"1":{"docs":{},".":{"0":{"docs":{"./":{"ref":"./","tf":0.013623978201634877}}},"docs":{}}},"4":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}},"docs":{}}},"docs":{}}},"1":{"2":{"3":{"docs":{},"\"":{"docs":{},"}":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}},"docs":{}},"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},"}":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}},"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.005449591280653951}}}}}}}}}},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},",":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}},"}":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}}}}}}},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"\"":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}},"}":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}},"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}},"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.005449591280653951}},",":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.008174386920980926},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}},"}":{"docs":{"./":{"ref":"./","tf":0.008174386920980926},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"/":{"3":{"docs":{},"\"":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902}}}},"docs":{}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"1":{"docs":{},"\"":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},")":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}},"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}}}}}}},"\"":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}}}}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}},")":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"\"":{"docs":{},")":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},")":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006779661016949152}}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.012773722627737226}}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}}}}},":":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},":":{"docs":{},"u":{"docs":{},"s":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"1":{"2":{"3":{"docs":{},"\"":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}},"}":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}},"docs":{}},"docs":{}},"docs":{},"i":{"docs":{},"k":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"\"":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"/":{"1":{"docs":{},"/":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"docs":{}}},"docs":{}}}}}}}}}}}},"o":{"docs":{},"k":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"$":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"@":{"1":{"5":{"docs":{},"b":{"5":{"9":{"docs":{},"b":{"0":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"]":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}},"}":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"$":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"_":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"$":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"_":{"docs":{},"_":{"2":{"1":{"2":{"4":{"docs":{},"@":{"7":{"4":{"6":{"1":{"7":{"4":{"4":{"docs":{},"b":{"docs":{},"\"":{"docs":{},"]":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"\"":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"}":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"]":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}}}}}},"k":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{},"}":{"docs":{},"}":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.010398613518197574},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016260162601626018},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012422360248447204},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015748031496062992}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}},"docs":{}}}}}}},"\"":{"docs":{},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.010948905109489052}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}},"k":{"docs":{},"o":{"docs":{},"s":{"docs":{},"h":{"docs":{},"\"":{"docs":{},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"\"":{"docs":{},"}":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}}}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}},"a":{"docs":{},"b":{"docs":{},"b":{"docs":{},"a":{"docs":{},"\"":{"docs":{},"}":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"n":{"docs":{},"y":{"docs":{},"\"":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},"}":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},"}":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},")":{"docs":{},"}":{"docs":{},"]":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}}},"#":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"{":{"docs":{},":":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.013623978201634877},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014492753623188406},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"s":{"docs":{},"{":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}},":":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}}}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"[":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"$":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"]":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"$":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.012371134020618556}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"$":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"_":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"$":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"_":{"docs":{},"_":{"2":{"1":{"2":{"4":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"$":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"]":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"$":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"$":{"docs":{},"]":{"docs":{},"}":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},"]":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"{":{"docs":{},":":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}}}},"{":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"}":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},"}":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.008247422680412371},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.01694915254237288}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},"]":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"z":{"docs":{},"}":{"docs":{},"}":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"]":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}}}}},"d":{"docs":{},"b":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006779661016949152}}}},"s":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"}":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}}}}}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"}":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}},"}":{"docs":{},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"}":{"docs":{},"}":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}}}}}}}},":":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"{":{"docs":{},":":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{},":":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}}}}}}}}}}}}}}}}}}},"'":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{},":":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}}}}}}}}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"v":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}}}},"&":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"'":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}},"[":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}},".":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"]":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"]":{"docs":{},")":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}}}}}}}}}}}}},"r":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"u":{"docs":{},"m":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}}}}}}},"(":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01812688821752266}},":":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}}}}}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"ring/ring.html":{"ref":"ring/ring.html","tf":0.029197080291970802},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"n":{"docs":{},"d":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}}}},"s":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"x":{"docs":{},"y":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}},"a":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}},"*":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828}}},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.012285012285012284}}}}},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828}}}}},"o":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"b":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"k":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.007371007371007371}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.007371007371007371}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"?":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}},"f":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}},"o":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"p":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"j":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.010948905109489052},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}},"l":{"docs":{},"l":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"m":{"docs":{},"p":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}},"e":{"docs":{},"!":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}}}}}}}},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705}}}}}}}}},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"j":{"docs":{},":":{"4":{"7":{"3":{"9":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},"q":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"a":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}},"c":{"docs":{},"/":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.008174386920980926},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012773722627737226},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.01152073732718894},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.018218623481781375},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"n":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0072992700729927005},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.038461538461538464}}}}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.012084592145015106}},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"o":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.015105740181268883}}}}}}}}},"r":{"docs":{},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.02452316076294278},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.025},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.043478260869565216},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.010398613518197574},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.008247422680412371},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014388489208633094},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.008174386920980926},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.008247422680412371},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.01733102253032929},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.032520325203252036},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.031055900621118012},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.023622047244094488},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0171990171990172},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.013157894736842105},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.012145748987854251},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}},"a":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}},"r":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012773722627737226},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.016194331983805668}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012773722627737226},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.016194331983805668}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856}},"e":{"docs":{},"r":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}}},"t":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.018633540372670808},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"!":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}},"/":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"?":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}},"q":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}},"*":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},".":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}},"[":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}}}},"i":{"docs":{},"f":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"?":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"o":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"t":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016260162601626018},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012422360248447204},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015748031496062992}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"p":{"docs":{},"v":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}},"a":{"docs":{},"l":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}},"m":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.007371007371007371},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},"f":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}},"v":{"docs":{},"i":{"docs":{},"a":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}},"#":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"{":{"docs":{},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.019230769230769232}}},"{":{"docs":{},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}},"l":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"h":{"docs":{},"i":{"docs":{},"c":{"docs":{},"h":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}},"b":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"k":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}},"e":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.015105740181268883}}}},"i":{"docs":{},"k":{"docs":{},"e":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}},"+":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"n":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.005253940455341506}}}}},"j":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},":":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.01634877384196185}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}},"]":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"}":{"docs":{"./":{"ref":"./","tf":0.008174386920980926}},"]":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.018633540372670808}}}}},"l":{"docs":{},"u":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},"s":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"}":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"c":{"docs":{},"c":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"d":{"docs":{},"b":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"}":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}},"}":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"e":{"docs":{},"v":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.018633540372670808},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014492753623188406}},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}},"s":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}},"]":{"docs":{},")":{"docs":{},")":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}}}},"k":{"docs":{},"i":{"docs":{},"k":{"docs":{},"k":{"docs":{},"a":{"docs":{},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.010309278350515464},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.022267206477732792}},"s":{"docs":{},")":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"s":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}},"docs":{}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"2":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"3":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"docs":{}}}}},"m":{"docs":{},"w":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}}}},"z":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}}}}}}},"a":{"docs":{"./":{"ref":"./","tf":0.008174386920980926},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.008247422680412371},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.012131715771230503},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.024390243902439025},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.024844720496894408},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015748031496062992},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.014742014742014743},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.009398496240601503},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.01417004048582996},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},"]":{"docs":{},"]":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"}":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}},"z":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}},"p":{"docs":{},"i":{"docs":{},"]":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}},"}":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}},")":{"docs":{},"]":{"docs":{},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}}}},"r":{"docs":{},"g":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.014742014742014743}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"]":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0364963503649635},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.03571428571428571},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.03007518796992481},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.010121457489878543}}},"y":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},".":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},"]":{"docs":{},"}":{"docs":{},"}":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.01634877384196185},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01812688821752266}}}}},"i":{"docs":{},"s":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}}}},"e":{"docs":{},"v":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}},"e":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526}}},"]":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}},"]":{"docs":{},")":{"docs":{},")":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}}}}}}}},"b":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},"]":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.01417004048582996}},",":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01824817518248175},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.01694915254237288},"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},")":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"]":{"docs":{},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}}}}}}}}},"x":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}},"o":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.01634877384196185},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.008665511265164644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}},"e":{"docs":{},"t":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.01559792027729636},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.032520325203252036},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.024844720496894408},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.031496062992125984},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.009398496240601503}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.013623978201634877},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014492753623188406},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.014742014742014743},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.009398496240601503}},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}},"c":{"docs":{},"h":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.009398496240601503},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},")":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}},"u":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}},"}":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}}}}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}}},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}},"o":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.01634877384196185},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.008665511265164644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.012084592145015106}},"e":{"docs":{},"s":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.010309278350515464}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},"e":{"docs":{},"r":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.014742014742014743}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0171990171990172}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.04176904176904177}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}}},"u":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828}},"e":{"docs":{},"r":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}}}},"u":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"ring/ring.html":{"ref":"ring/ring.html","tf":0.025547445255474453},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.022530329289428077},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.032520325203252036},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012422360248447204},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.031496062992125984}},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"}":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728}},"]":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728}}}}}}}},"u":{"docs":{},"s":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},"]":{"docs":{},"]":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}},"]":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.012371134020618556}},"e":{"docs":{},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"]":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"s":{"docs":{},")":{"docs":{},")":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}},"docs":{}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}},"e":{"docs":{},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.01386481802426343},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016260162601626018},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012422360248447204},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015748031496062992},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}}}}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.014742014742014743}}}}}},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094}}}}}}},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"u":{"docs":{},"p":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.011278195488721804}}},"y":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"i":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},"t":{"docs":{},"o":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}},"a":{"docs":{},"l":{"docs":{},"}":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}},"s":{"docs":{},")":{"docs":{},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.01443298969072165},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"e":{"docs":{},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}},"i":{"docs":{},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"u":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}},"i":{"docs":{},"a":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}},"x":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}},"y":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}},"z":{"docs":{},")":{"docs":{},")":{"docs":{},"]":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},")":{"docs":{},"]":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}},";":{"docs":{"./":{"ref":"./","tf":0.11171662125340599},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.029585798816568046},"basics/router.html":{"ref":"basics/router.html","tf":0.026785714285714284},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.075},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.13043478260869565},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.1016949152542373},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.12577319587628866},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.17266187050359713},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.06239168110918544},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.08130081300813008},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.055900621118012424},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.07874015748031496},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.2727272727272727},"ring/ring.html":{"ref":"ring/ring.html","tf":0.040145985401459854},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.03759398496240601},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},";":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834},"performance.html":{"ref":"performance.html","tf":0.028021015761821366}}}},">":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.05755395683453238},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"ring/ring.html":{"ref":"ring/ring.html","tf":0.010948905109489052},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.015037593984962405},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01812688821752266},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},">":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}},"[":{"0":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}},"1":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}},"3":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"docs":{},"\"":{"docs":{},"/":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.01775147928994083},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.008247422680412371},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.012145748987854251}}},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}}}}}}}}},":":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"/":{"docs":{},":":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"\"":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009124087591240875},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.013559322033898305},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"/":{"docs":{},"*":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"\"":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}}}},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}}}}}}}},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"/":{"docs":{},":":{"docs":{},"z":{"docs":{},"\"":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.01694915254237288},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}}}},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}}}}},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}},"e":{"docs":{},"v":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},":":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},":":{"docs":{},"u":{"docs":{},"s":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{},"/":{"docs":{},":":{"docs":{},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"\"":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"/":{"docs":{},":":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}},"docs":{}}}}}}}},"[":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"/":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}},"\"":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.013559322033898305},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},":":{"docs":{},"u":{"docs":{},"s":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}}}},"#":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"[":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"$":{"docs":{},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"3":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}}},"docs":{"./":{"ref":"./","tf":0.005449591280653951},"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}}}}}},":":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}},"_":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"]":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.013623978201634877}}}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"i":{"docs":{},"r":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}},":":{"docs":{},":":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{},",":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}},"}":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"p":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006779661016949152}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}},"c":{"docs":{},"c":{"docs":{},"]":{"docs":{},"}":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"d":{"docs":{},"b":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}}}}}}}},"m":{"docs":{},"w":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}},"z":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"]":{"docs":{},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"p":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},"e":{"docs":{},"s":{"docs":{},"]":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"]":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"}":{"docs":{},")":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"e":{"docs":{},"s":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}},"d":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"]":{"docs":{},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}},"]":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"]":{"docs":{},"}":{"docs":{},"]":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.026785714285714284}},"s":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.03571428571428571}}}}}}},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}},"%":{"docs":{},"]":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.007371007371007371}}}},"]":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}},"}":{"docs":{},")":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}},"#":{"docs":{},"(":{"docs":{},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}},"{":{"docs":{},":":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"2":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}}},"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"z":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.020242914979757085}}}}}},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"d":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"advanced/":{"ref":"advanced/","tf":10.125}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"p":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01824817518248175},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.020242914979757085}},"l":{"docs":{},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.010398613518197574},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902}},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}},"y":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}},"r":{"docs":{},"o":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}}}}},"i":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.005253940455341506}}}},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"c":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"u":{"docs":{},"m":{"docs":{},"u":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526}}}},"s":{"docs":{},"s":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"r":{"docs":{},"g":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.019230769230769232},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},"s":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}}}}},"s":{"docs":{},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"t":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.007371007371007371}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"x":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"n":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"}":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}}},"n":{"docs":{},"y":{"docs":{},"m":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285}}}}}},"d":{"docs":{},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}},"i":{"docs":{},"z":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},",":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.005253940455341506}}}}},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"m":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"s":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}},"g":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},":":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}},"s":{"docs":{},"t":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"t":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"s":{"docs":{},"k":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},".":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/":{"ref":"basics/","tf":0.11764705882352941},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":3.358333333333333},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":3.3405797101449273},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0072992700729927005},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"i":{"docs":{},"c":{"docs":{"basics/":{"ref":"basics/","tf":10.058823529411764},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"c":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}},"d":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"i":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"e":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}}},"a":{"docs":{},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"w":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"k":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708},"faq.html":{"ref":"faq.html","tf":0.046511627906976744}}}},"n":{"docs":{},"u":{"docs":{},"s":{"docs":{},",":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}},"x":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},".":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"d":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}},"b":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"'":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"t":{"docs":{},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}},"s":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}},"i":{"docs":{},"n":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.01152073732718894},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}},"o":{"docs":{},"o":{"docs":{},"s":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"coercion/":{"ref":"coercion/","tf":0.125},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":10.01863354037267},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"f":{"docs":{},"n":{"docs":{},"?":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}},"e":{"docs":{},"x":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}},",":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"o":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.011278195488721804},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.010899182561307902},"coercion/":{"ref":"coercion/","tf":10.25},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":5.0398613518197575},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016260162601626018},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.018633540372670808},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015748031496062992},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/coercion.html":{"ref":"ring/coercion.html","tf":5.037593984962406},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.027190332326283987},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902}}},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}}}}},"]":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}},":":{"docs":{"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016260162601626018},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012422360248447204},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015748031496062992}}}}}},"e":{"docs":{},"!":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.024390243902439025},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.018633540372670808},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.023622047244094488}}},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.008665511265164644},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.02416918429003021}},"s":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}},"}":{"docs":{},")":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}}},"d":{"docs":{},".":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.01386481802426343},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0072992700729927005},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.013824884792626729},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":5.015105740181269},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"r":{"docs":{},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}},"(":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"/":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"j":{"docs":{},"c":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"_":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"j":{"docs":{},"c":{"docs":{},":":{"1":{"5":{"1":{"docs":{},":":{"1":{"docs":{},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}}}},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"s":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"i":{"docs":{},"t":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"a":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"u":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"m":{"docs":{},"u":{"docs":{},"n":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}},"o":{"docs":{},"n":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/":{"ref":"basics/","tf":0.058823529411764705},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":5.043165467625899},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"s":{"docs":{},":":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}},"!":{"docs":{},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02158273381294964}}}}},"i":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"advanced/":{"ref":"advanced/","tf":0.125},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":5.019230769230769},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}}},"j":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014388489208633094},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},")":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"s":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}},"d":{"docs":{},"e":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"s":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"l":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}}},"c":{"docs":{},"h":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"e":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"q":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.03571428571428571},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},":":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}}}}}}}}}},"c":{"docs":{},"]":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.013623978201634877},"basics/":{"ref":"basics/","tf":0.11764705882352941},"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":5.030508474576271},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":3.3498281786941577},"coercion/":{"ref":"coercion/","tf":0.125},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.008665511265164644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":5.015748031496063},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.028846153846153848},"ring/":{"ref":"ring/","tf":0.13333333333333333},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":3.34715821812596},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":3.349527665317139},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.012084592145015106}},",":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.008247422680412371},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},":":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.012371134020618556},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}}},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}}}}},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}},"s":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.010398613518197574},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.016917293233082706},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},")":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},":":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"i":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009124087591240875}},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"s":{"docs":{},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}},"v":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},",":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},"s":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009}}}}},"i":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}}}},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}},"s":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"advanced/":{"ref":"advanced/","tf":0.125},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":5.014388489208633},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.010899182561307902},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":3.3379416282642085}}}}}}},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":5.007142857142857},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"o":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"n":{"docs":{},"e":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}},"'":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.005253940455341506}}}}},"e":{"docs":{},"s":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902}}}}}}},"c":{"docs":{"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"w":{"docs":{},"n":{"docs":{},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"b":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"e":{"docs":{},"x":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"c":{"docs":{},"t":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}},"s":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":5.014285714285714},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}},"r":{"docs":{},"n":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"r":{"docs":{},"a":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"c":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.020338983050847456},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"s":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}}}}},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/":{"ref":"coercion/","tf":0.125},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":5.001733102253033},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},"l":{"docs":{},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}}},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"n":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"d":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"s":{"docs":{},".":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"v":{"docs":{},"i":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}}}}}}}}}},"]":{"docs":{},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},"s":{"docs":{},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},":":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}},".":{"docs":{},"g":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"t":{"docs":{},"c":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"f":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553},"performance.html":{"ref":"performance.html","tf":0.005253940455341506}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"e":{"docs":{},"r":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0070052539404553416}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},")":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}},"l":{"docs":{},"s":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"e":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}}}},"i":{"docs":{},"l":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.010309278350515464},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.012285012285012284},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}},":":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}},"s":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}},"q":{"docs":{"faq.html":{"ref":"faq.html","tf":10}}}},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}},"x":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"r":{"docs":{},"m":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"a":{"docs":{},"t":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}}},"u":{"docs":{},"n":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.057692307692307696},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.01152073732718894},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}},",":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}},".":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}},"l":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}},"n":{"docs":{},"?":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"e":{"docs":{},",":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"w":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"l":{"docs":{},"t":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.010899182561307902},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/ring.html":{"ref":"ring/ring.html","tf":0.03832116788321168},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.013824884792626729},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.03643724696356275},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"}":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"]":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},"]":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}},"]":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526}}},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},"s":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}},"/":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"v":{"docs":{},"e":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}}},"s":{"docs":{},"h":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}},"r":{"docs":{},"d":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"e":{"docs":{},"r":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}},"l":{"docs":{},"p":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"e":{"docs":{},"r":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577}}}}}},"r":{"docs":{},"e":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"'":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}},"s":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}},"l":{"docs":{},"d":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}},"c":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}},"p":{"docs":{},"e":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}},"i":{"7":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.02877697841726619},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.024263431542461005},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.032520325203252036},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.018633540372670808},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.031496062992125984}},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"]":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"]":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}},")":{"docs":{},")":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}}}},"}":{"docs":{"./":{"ref":"./","tf":0.005449591280653951}},",":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}},"\"":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006779661016949152}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006779661016949152}}}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006779661016949152}},")":{"docs":{},")":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006779661016949152}}}}}}},"]":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"a":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014388489208633094}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"]":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":10.002724795640328}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"advanced/":{"ref":"advanced/","tf":0.125},"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":10.117647058823529}},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"s":{"docs":{},".":{"docs":{"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}},"n":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}},"}":{"docs":{},"}":{"docs":{},"}":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009}}}}}},"?":{"docs":{},"}":{"docs":{},"}":{"docs":{},"}":{"docs":{},",":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}},"]":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"r":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}}},"f":{"docs":{},"o":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}},"r":{"docs":{},"m":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.007371007371007371}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.008247422680412371},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},":":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}},"s":{"docs":{},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}},"o":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.019230769230769232},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}},"t":{"docs":{},"'":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006779661016949152},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},",":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"?":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02158273381294964},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}},"l":{"docs":{},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"s":{"docs":{},"s":{"docs":{},"u":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"l":{"2":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"3":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{},"i":{"docs":{},"b":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}},"y":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}},"?":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}}},"s":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},",":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}},"s":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}},"n":{"docs":{},"k":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}},"f":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}},"e":{"docs":{},"a":{"docs":{},"f":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}},"t":{"docs":{},"'":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}}}},"s":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"o":{"docs":{},"g":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}},"o":{"docs":{},"k":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"u":{"docs":{},"p":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0070052539404553416}},",":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"n":{"docs":{},"g":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"r":{"docs":{},"g":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"e":{"docs":{},"!":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"u":{"docs":{},"p":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.05},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006779661016949152},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014388489208633094},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.008665511265164644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016260162601626018},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012422360248447204},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015748031496062992},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02158273381294964},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.030211480362537766},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"?":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},",":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"s":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},")":{"docs":{},")":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}},":":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"?":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"p":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},".":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}},"s":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"i":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"k":{"docs":{},"e":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}},"g":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}}},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"u":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.005253940455341506}},"e":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"n":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"a":{"docs":{},"g":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"p":{"docs":{},"r":{"docs":{},"o":{"1":{"1":{"docs":{},",":{"3":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/ring.html":{"ref":"ring/ring.html","tf":0.03467153284671533},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.015105740181268883},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},".":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"s":{"docs":{},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}},"a":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006779661016949152}}}},"r":{"docs":{},"g":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"e":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}},"a":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.005253940455341506}},"e":{"docs":{},"?":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"i":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"ring/":{"ref":"ring/","tf":0.13333333333333333},"ring/ring.html":{"ref":"ring/ring.html","tf":0.016423357664233577},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":3.4139784946236555},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.02834008097165992},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":5.027190332326284},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},".":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}},"]":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"}":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"s":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}},"t":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}},"n":{"docs":{},"d":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"x":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"e":{"docs":{},"?":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"s":{"docs":{},".":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"r":{"docs":{},"e":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"performance.html":{"ref":"performance.html","tf":0.005253940455341506}},".":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},".":{"docs":{},"\"":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"v":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"l":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"w":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},"b":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.01634877384196185},"basics/":{"ref":"basics/","tf":0.058823529411764705},"basics/router.html":{"ref":"basics/router.html","tf":0.05357142857142857},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":3.3840579710144922},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006779661016949152},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},"]":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}},"!":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},".":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"s":{"docs":{},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.02452316076294278},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.025},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0072992700729927005}},",":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014492753623188406},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577}}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}},":":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},")":{"docs":{},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"]":{"docs":{},"]":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}},"e":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012422360248447204},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}},"w":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"a":{"docs":{},"r":{"docs":{},"l":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"o":{"docs":{},"n":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"e":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}},"t":{"docs":{},"e":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"\"":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}}}}}},"w":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577}}},"d":{"docs":{},"e":{"docs":{},".":{"docs":{},"j":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}},"s":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.04807692307692308},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.03571428571428571},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}}},"s":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},",":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"m":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0070052539404553416}}},"n":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}},"s":{"docs":{},")":{"docs":{},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}}}},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"a":{"docs":{},"q":{"docs":{},"u":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"o":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}}}},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.008756567425569177}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"n":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02158273381294964},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.005253940455341506}},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}}}}}}},"f":{"docs":{},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"v":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}}},"t":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"*":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.011278195488721804}},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.012131715771230503},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.02443609022556391}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"s":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"s":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}},"}":{"docs":{},"}":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"}":{"docs":{},"}":{"docs":{},",":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}},"]":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}}}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},",":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}}}}}}}}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}},"s":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577}}}},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.008174386920980926},"basics/":{"ref":"basics/","tf":0.058823529411764705},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.023668639053254437},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":3.433333333333333},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.01733102253032929},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.032520325203252036},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.024844720496894408},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.031496062992125984},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02877697841726619},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.010507880910683012}},"]":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"]":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"s":{"docs":{},"s":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}}}}}},"l":{"docs":{},"u":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},"g":{"docs":{},"g":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/coercion.html":{"ref":"ring/coercion.html","tf":5.0018796992481205},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"coercion/":{"ref":"coercion/","tf":0.125},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":5.016260162601626},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"r":{"docs":{},"o":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705}}}}}}},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}},".":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}},",":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"s":{"docs":{},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}},":":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"o":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"s":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"o":{"docs":{},"f":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"p":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"l":{"docs":{},"n":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"s":{"docs":{},"!":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}}}}}}}}}},"e":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.007371007371007371}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},":":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}}},"e":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"f":{"docs":{"performance.html":{"ref":"performance.html","tf":0.012259194395796848}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"performance.html":{"ref":"performance.html","tf":10.00875656742557}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"performance.html":{"ref":"performance.html","tf":0.0070052539404553416}},"a":{"docs":{},"l":{"docs":{},")":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"s":{"docs":{},"?":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},")":{"docs":{},"\"":{"docs":{},"}":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}},"}":{"docs":{},"}":{"docs":{},"}":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"b":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"w":{"docs":{},"e":{"docs":{},"r":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},".":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},"r":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},":":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"s":{"docs":{},"h":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}}}},"l":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787}},"]":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"e":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.008756567425569177}},",":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},"e":{"docs":{},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}}}},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"!":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.008665511265164644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016260162601626018},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012422360248447204},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015748031496062992},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012773722627737226},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.027190332326283987},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.015105740181268883}},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},")":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}},"}":{"docs":{},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"}":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}},":":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}}}},"v":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.019230769230769232},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"(":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.015037593984962405},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.045317220543806644}},"e":{"docs":{},"s":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"]":{"docs":{},"}":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},":":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},"]":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"s":{"docs":{},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"e":{"docs":{},")":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.025},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}}},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.013824884792626729},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"a":{"docs":{},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"i":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}},"m":{"docs":{},"e":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}}},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.005253940455341506}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"l":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}},"y":{"docs":{},",":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}}},"l":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"e":{"docs":{},"v":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"p":{"docs":{},"o":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"`":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"u":{"docs":{},"s":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"e":{"docs":{},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.013623978201634877},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"ring/":{"ref":"ring/","tf":10.133333333333333},"ring/ring.html":{"ref":"ring/ring.html","tf":5.014598540145985},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"]":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"/":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.01634877384196185},"basics/":{"ref":"basics/","tf":0.35294117647058826},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":5.0828402366863905},"basics/router.html":{"ref":"basics/router.html","tf":0.0625},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":3.370833333333333},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":3.369565217391304},"basics/route_data.html":{"ref":"basics/route_data.html","tf":5.0508474576271185},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":3.3663230240549824},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":5.0503597122302155},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.01733102253032929},"advanced/":{"ref":"advanced/","tf":0.125},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.1346153846153846},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.050359712230215826},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":5.031941031941032},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/ring.html":{"ref":"ring/ring.html","tf":0.016423357664233577},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.011278195488721804},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":3.349527665317139},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.03625377643504532},"performance.html":{"ref":"performance.html","tf":0.05253940455341506},"faq.html":{"ref":"faq.html","tf":0.09302325581395349}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.04087193460490463},"basics/":{"ref":"basics/","tf":0.058823529411764705},"basics/router.html":{"ref":"basics/router.html","tf":10.080357142857142},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.05},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.050724637681159424},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.03728813559322034},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.02877697841726619},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.01559792027729636},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016260162601626018},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012422360248447204},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015748031496062992},"advanced/":{"ref":"advanced/","tf":0.25},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":5.038461538461538},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":5.122302158273381},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/ring.html":{"ref":"ring/ring.html","tf":5.005474452554744},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.008756567425569177}},")":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}},":":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094}}},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"performance.html":{"ref":"performance.html","tf":0.005253940455341506}}},"s":{"docs":{},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143}}},"s":{"docs":{},".":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02877697841726619}}},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.02158273381294964},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}},")":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},":":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}},",":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},",":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02158273381294964},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.014742014742014743}}}}}},"(":{"docs":{},"s":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}},":":{"docs":{"./":{"ref":"./","tf":0.010899182561307902},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},",":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}},")":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}}}}},"o":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}},"l":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}},"s":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}},":":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}},"]":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},"}":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},"]":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"]":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"a":{"docs":{},"w":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},")":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}}}}},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"s":{"docs":{},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.008247422680412371}}}}}}}},"]":{"docs":{},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"u":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"performance.html":{"ref":"performance.html","tf":0.005253940455341506}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"?":{"docs":{"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705}}}}}}},"l":{"docs":{},"e":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}},"]":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"s":{"docs":{},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}}}}}}}},"]":{"docs":{},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"coercion/":{"ref":"coercion/","tf":0.125},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.008665511265164644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":5.016260162601626},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.011278195488721804}},":":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"f":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787},"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}},"a":{"docs":{},"l":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},"]":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"u":{"docs":{},"p":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}},"e":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152}}},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"r":{"docs":{},"v":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"d":{"docs":{},"e":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"t":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"z":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754}}}}}},"o":{"docs":{},"w":{"docs":{},",":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{},"\"":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.013623978201634877}}}}}}}},"p":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.018556701030927835},"coercion/":{"ref":"coercion/","tf":0.125},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012422360248447204},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":5.015748031496063},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.012285012285012284},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.018218623481781375},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"!":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.012145748987854251}},"}":{"docs":{},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828}}},".":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"?":{"docs":{},")":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"?":{"docs":{},")":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}}}}}}}}}},"]":{"docs":{},")":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}}},"a":{"docs":{},"l":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"s":{"docs":{},".":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"e":{"docs":{},"r":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}}},"b":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}},"y":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/":{"ref":"basics/","tf":0.058823529411764705},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":5.005917159763314},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}},".":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},".":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"p":{"docs":{},"l":{"docs":{"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"f":{"docs":{},"i":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}}}}}},"t":{"docs":{},"r":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}},"s":{"docs":{},":":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577}}}},"?":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}},",":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}}},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},"}":{"docs":{},")":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}}}}}},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}}}}}}},"e":{"docs":{},"p":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},"s":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}},"s":{"docs":{},"t":{"docs":{},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02877697841726619},"performance.html":{"ref":"performance.html","tf":0.008756567425569177}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"b":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}},"l":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"y":{"docs":{},"l":{"docs":{},"e":{"docs":{"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}},"f":{"docs":{},"f":{"docs":{},"m":{"docs":{},"?":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"]":{"docs":{},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0070052539404553416}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},"}":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203}},"}":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},"}":{"docs":{},"]":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009}},")":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009}}}}},"*":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"h":{"docs":{},"i":{"docs":{},"p":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},"n":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"o":{"docs":{},"w":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}},"a":{"docs":{},"p":{"docs":{},"e":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"e":{"docs":{},"e":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.008756567425569177}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}},"s":{"docs":{},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}}},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"e":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},"s":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"]":{"docs":{},")":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}}}}}}}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},")":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}},"p":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}}}},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}},"w":{"docs":{},"o":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.008665511265164644},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}},"b":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"e":{"docs":{},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}}},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}},"n":{"docs":{},":":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}},"e":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"e":{"docs":{},"m":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}},"a":{"docs":{},"n":{"docs":{},"k":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"s":{"docs":{},".":{"docs":{},"\"":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}}}}}},"s":{"docs":{},":":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}},"r":{"docs":{},"d":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"u":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"performance.html":{"ref":"performance.html","tf":0.005253940455341506}},")":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"p":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.024518388791593695}},"s":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"u":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0070052539404553416},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"e":{"docs":{},"r":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}}}},"d":{"docs":{},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},":":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"m":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"2":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"3":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012422360248447204},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}},"}":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}},"h":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}}}},"y":{"docs":{},"?":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}},"a":{"docs":{},"y":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"n":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"i":{"docs":{},"n":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828}}}}},"l":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"performance.html":{"ref":"performance.html","tf":0.010507880910683012}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"e":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"l":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"{":{"2":{"0":{"0":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}},"docs":{}},"docs":{}},"docs":{},":":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.013559322033898305},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0027247956403269754},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006779661016949152},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.026804123711340205},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.018218623481781375}}}}}}}}},"i":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.009398496240601503}},"d":{"docs":{"./":{"ref":"./","tf":0.008174386920980926},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014492753623188406}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.03550295857988166},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.01694915254237288}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.008174386920980926},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.01775147928994083},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0072992700729927005},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.013824884792626729},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.010121457489878543}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.013623978201634877},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.01694915254237288},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.012131715771230503},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016260162601626018},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012422360248447204},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015748031496062992},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"o":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"ring/ring.html":{"ref":"ring/ring.html","tf":0.025547445255474453},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.01694915254237288}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0364963503649635},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.03571428571428571},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.013157894736842105},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.010121457489878543}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203}}}}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}},"r":{"docs":{},"o":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}}}}},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.01733102253032929},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.032520325203252036},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.024844720496894408},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.031496062992125984}}}}}},":":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}},"m":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.022530329289428077},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.032520325203252036},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012422360248447204},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.031496062992125984}}}}},"i":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}},"r":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}},"t":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.015037593984962405}}}}}}},"x":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.009398496240601503}}},"z":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.018218623481781375}}}}}}},"}":{"docs":{"./":{"ref":"./","tf":0.005449591280653951},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010169491525423728}},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}}}},"\"":{"docs":{},"x":{"docs":{},"\"":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"basics/":{"ref":"basics/","tf":0.058823529411764705},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":3.351890034364261},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"advanced/":{"ref":"advanced/","tf":0.125},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02877697841726619},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":5.002457002457002},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":3.3454790823211873}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}},",":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.007371007371007371}}},"u":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}},"i":{"docs":{},"a":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006779661016949152},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.019230769230769232},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}},"e":{"docs":{},"w":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.005199306759098787},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496}}},"]":{"docs":{},")":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}},"}":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}}}}},"=":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}},">":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.007874015748031496},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.057692307692307696},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006211180124223602}}}}},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},",":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}},":":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143}}}}},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},".":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"b":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"h":{"docs":{},"z":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}}},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}}}}}},":":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014388489208633094}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.02877697841726619}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{},"/":{"docs":{},":":{"docs":{},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.02877697841726619}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"/":{"docs":{},"*":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.02877697841726619}}}}}}}}}}}}}}},"^":{"docs":{},":":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576}}}}}}}}},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}},"^":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.010309278350515464},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034662045060658577},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003389830508474576},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}}}}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"s":{"docs":{},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}},"e":{"docs":{},"t":{"docs":{},".":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"b":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"%":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828}},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"+":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}},"`":{"docs":{},":":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"`":{"docs":{},",":{"docs":{},"`":{"docs":{},":":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"`":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"`":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"`":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}}}}}}},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}}}}}},"|":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.016494845360824743}}},"j":{"docs":{},"a":{"docs":{},"v":{"docs":{},"a":{"docs":{},".":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.006932409012131715},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008130081300813009}}}}}}}}}}}}}}}}}},"v":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"y":{"docs":{},"e":{"docs":{},"t":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288}}}}},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017331022530329288},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"?":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"\\":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"b":{"docs":{},"b":{"docs":{},"a":{"docs":{},"\\":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{},"\"":{"docs":{},"}":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}}}}}},")":{"docs":{},"b":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}},"~":{"2":{"0":{"0":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{}},"docs":{}},"3":{"0":{"0":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{}},"docs":{}},"docs":{}},"µ":{"docs":{},"s":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"length":3355},"corpusTokens":["\"\"}","\"\"})","\"\"})))","\"(constrain","\"(not","\"/\"","\"/\"))","\"/\")))","\"/\"))))","\"/\"})","\"/:company/users/:us","\"/api\"","\"/api\",","\"/api/admin/db\"})","\"/api/admin/ping\",","\"/api/admin/ping\"})","\"/api/admin/users\"})","\"/api/internal/users\"})","\"/api/ipa\")","\"/api/orders/1\")","\"/api/orders/1\"}","\"/api/orders/2\"}","\"/api/orders/:id\"","\"/api/orders/:id\",","\"/api/ping\"","\"/api/ping\")","\"/api/ping\"}","\"/api/ping\"})","\"/api/plus/3\"","\"/api/user/1\"","\"/api/user/1\")","\"/api/user/:id\"","\"/api/user/:id\",","\"/auth/login\")))","\"/favicon.ico\"})","\"/hello\")","\"/invalid\"})","\"/metosin/users/123\")","\"/metosin/users/123\"))","\"/metosin/users/123\"}","\"/metosin/users/ikitommi\")","\"/metosin/users/ikitommi\"))","\"/ping\"","\"/ping\")","\"/ping\"}","\"/ping\"})","\"/pong\"})","\"/workspace/1/1\")))","\"0.1.0","\"0.4.0\"]","\"1\"}","\"1\"})","\"1\"}}","\"123\"},","\"abba\"}","\"abba\"},","\"any\"","\"any\"},","\"clojure.core$identity@15b59b0e\"],","\"clojure.core$identity@15b59b0e\"]}","\"clojure.core$identity@15b59b0e\"]},","\"clojure.core$identity@15b59b0e\"]}}})},","\"clojure.spec.alpha$merge_spec_impl$reify__2124@7461744b\"],","\"forbidden\"}","\"identity\"","\"identity\",","\"identity\"},","\"identity\"}]","\"identity\"}])","\"identity\"}}})},","\"ikitommi\"))}}","\"int\",","\"kosh\"}","\"kosh\"})","\"kosh\"})})))","\"metosin\",","\"middlewar","\"ok\",","\"ok\"}","\"ok\"})","\"ok\"}))","\"pong\"}","\"pong\"})}]","\"tenant1\"","#'reitit.core/rout","#(interleav","#(respond","#:clojure.spec.alpha{:problem","#coercionerror{:schema","#endpoint{:data","#match{:templ","#methods{...}","#methods{:ani","#object[...],","#object[...]}","#object[...]},","#object[clojure.core$ident","#object[clojure.spec.alpha$merge_spec_impl$reify__2124","#object[reitit.coercion$request_coercer$]},","#object[reitit.core$...]","#object[user$handler]}","#partialmatch{:templ","#reitit","#{:admin","#{:adminz}}","#{:adminz}},","#{:adminz}}]","#{:adminz}}}})},","#{:admin}","#{:admin}}","#{:admin}})","#{:admin}}}]]","#{:admin}}}]]]","#{:db","#{:id}","#{:id}}","#{:manager}","#{:manager}}","#{:public","#{:session}","#{:user}","#{route}}","#{})","#{}))","%","%)","%))","%))))","&","'())","'[clojure.set","'[clojure.spec.alpha","'[clojure.spec.test.alpha","'[criterium.cor","'[expound.alpha","'[reitit.coercion","'[reitit.coercion.schema])","'[reitit.coercion.spec])","'[reitit.cor","'[reitit.middlewar","'[reitit.r","'[reitit.ring.coercion","'[reitit.ring.spec","'[reitit.spec","'[reitit.spec])","'[schema.cor","'[spec","'add","'get","'positiveint))","(","(#reitit.spec.problem{:path","()","(*","(*path).","(+","(:api","(:get,","(:id)","(:query,","(:reitit.coercion/request","(:request","(?","([\"/api\"","([\"/get","([...","([request","([request]","(actually,","(and","(app","(assoc","(ataraxy,","(blank?","(cat","(cc/quick","(clojure.core/contains?","(clojure.core/fn","(clojure.core/or","(clojure.spec),","(clojure.spec.alpha/*","(clojure.spec.alpha/?","(clojure.spec.alpha/and","(clojure.spec.alpha/cat","(clojure.spec.alpha/col","(clojure.spec.alpha/key","(clojure.spec.alpha/nil","(clojure.spec.alpha/or","(clojure.string/blank?","(clojure.string/start","(coerc","(coercion/coerc","(coercion/coerce!","(coercion/respons","(coericon)","(coll","(comp","(compiled)","(condp","(conj","(constantli","(core.clj:4739)","(cqr","(data)","(def","(default","(defn","(defprotocol","(done","(dotim","(duct/integrant/macchiato","(effect","(fn","(fnil","(for","(fulli","(handler","(if","(integer?","(just","(let","(like","(mapv","(match","(matches,","(micro","(middleware/cr","(name","(nilabl","(no","(non","(not","(of","(onli","(optimized)","(option","(optional)","(or","(per","(positiveint","(println","(r/match","(r/partial","(r/rout","(r/router","(real","(records,","(reitit/match","(reitit/routes))","(repeat","(requir","(respons","(reverse)","(ring/creat","(ring/get","(ring/r","(ring/rout","(rout","(router","(s/coll","(s/constrain","(s/def","(s/explain","(s/key","(s/merg","(s/valid?","(schema","(seq","(set!","(set/subset?","(some","(start","(static","(stest/instru","(str","(updat","(via","(which","(wildcard","(with","({:path",")benchmark","+","...","...,","...])","/:user","/:version/statu","/api/command/add","/api/user/:id:","/bulk/:bulk","/public/*path","0]}),","0x15b59b0e","0x7461744b","1","1.9m","100","1000)","1000):","1000]","10}})","123}}","16","1]","2","2,5","200","200,","24x","256","2]]}","2})","2},","2}})","3","3.2","300","312m","3]]","4","400,","403,","404,","405,","406,","50%","50+","500,","500x","530","6","6))\"},","6},","6}}",":","::acc","::admin]","::admin}]","::coerc","::compani","::db]","::db]]","::db]}","::db}]","::dev","::ipa)","::kikka)","::mw/coerc","::order","::path","::ping","::ping)","::ping))","::ping]","::ping]]","::ping}","::ping}]","::ping}]]","::plu","::plus)","::pong}]]","::role","::roles)]","::rs/default","::rs/explain","::rs/respons","::spec/raw","::tenant1])","::user","::user)","::user))","::user]]]))","::users]","::users]]))","::users}","::wrap2","::wrap3","::zone",":a",":admin",":admin]]}",":adminz,",":admin}",":api)]}",":api]]",":api]]}",":append,",":arg",":auth/login]",":auth/recovery]",":bodi",":body,",":body.",":body]}}",":child",":clojure.spec.alpha/spec",":clojure.spec.alpha/valu",":coerc",":coercion",":coercion)",":command",":compil",":compile.",":conflict",":data",":db",":db]]",":debug",":debug]))})))",":delet",":delete,",":delete]]",":descript",":dev",":displac",":error",":expand",":form,",":get",":get,",":handler",":handler)})",":handler]}",":head,",":header",":in",":intern",":internal}",":internal})",":into",":let",":linear",":lookup",":manager}",":manager})",":manager},",":method",":middlewar",":mix",":name",":name)))",":not",":opt",":options,",":opts)]",":param",":paramet",":parameters.",":patch,",":path",":path)",":path.",":path]",":post",":post)]]",":post,",":pred",":prepend,",":problem",":provides.",":public",":public}",":put,",":put.",":queri",":query,",":reitit.coercion/request",":reitit.coercion/respons",":reitit.middleware/transform",":reitit.spec/arg)",":reitit.spec/default",":reitit.spec/handl",":reitit.spec/handler])",":reitit.spec/handler],",":reitit.spec/path",":reitit.spec/path:",":reitit.spec/raw",":replac",":req",":request",":requir",":respons",":responses)",":result",":role",":rout",":router",":schema,",":scope",":segment",":singl",":spec",":type",":uri",":user",":user/ord",":user/ping}",":user/ping}]",":user/rol",":user/role:",":user/role],",":user/roles)),",":user/roles:",":user/tenant1",":user/tenant1]",":user/us",":user/user]",":user/user}",":user/user},",":user/user}]]",":val",":valid",":valu",":via",":workspace/page]]))",":wrap",":wrap.",":x)",":y)",":z))]",":zone",":zone)]",";",";;","=","=>",">",">>","?arg","?wrap.","[\"\"","[\"/:company/users/:us","[\"/:user","[\"/:version/status\"]])","[\"/add","[\"/admin\"","[\"/api\"","[\"/api/:users\"","[\"/api/:version/ping\"]]","[\"/api/admin/db\"","[\"/api/admin/users\"","[\"/api/internal/users\"","[\"/api/orders/:id\"","[\"/api/ping\"","[\"/api/user/:id\"","[\"/auth/recovery/token/:token\"","[\"/bulk/:bulk","[\"/db\"","[\"/dev","[\"/internal\"","[\"/ping\"","[\"/ping\"]","[\"/plus/:z\"","[\"/pong\"","[\"/pong\"]]","[\"/public\"","[\"/public/*path\"]","[\"/user/:id\"","[\"/users\"","[\"/workspace/:project/:page\"","[\"pong\"]]])","[\"tenant1\"","[#(wrap","[%]","[...","[0]","[1","[1]","[3","[::acc]}]","[::admin],","[::admin]}","[::api","[::api]","[::api]}","[::compani","[::db]","[::mw/coerc","[::roles]","[::roles])","[::zone])","[:api","[:command","[:handler]","[:handler],","[:handler]}),","[:reitit.spec/default","[:reitit.spec/nam","[:request","[:respons","[:rout","[:routes]","[:user/p","[:user/rol","[:user/roles],","[[\"/api\"","[[\"/api/admin\"","[[\"/api/ping\"","[[\"/api/public/ping\"","[[\"/auth/login\"","[[\"/ping\"","[[\"/ping\"]","[[\"/users/:us","[[#object[user$wrap]","[[:queri","[[type","[[wrap","[[wrap3","[]","[])","[]))","[],","[]}),","[]}}]]","[_","[_]","[action","[add","[coercer","[coercion","[expound","[get","[handler","[handler]","[interceptor]}}])","[match","[method","[metosin/reitit","[parameters]}]","[path","[path]","[request]","[requir","[respons","[rrc/coerc","[thi","[this])","[total","[wrap","[wrap2","[zone","[{:key","\\\"abba\\\"))\"},","^:replac","^^^^^^","^^^^^^^","`:admin`,`:manager`","`:user/roles`","`lein","`reitit.coercion/coercion`","`reitit/router)","abil","about.","abstract","acc","accept","access","accident","accumul","accur","action","actual","ad","adapt","add","admin}}]]","admin}}]]]))","adopt","advanc","again,","again:","against","against.","againt","algorithm,","algorithms,","allow","allowed.","also,","alternative,","alway","and/or","anonym","anoth","another.","anything,","any},","api","app","app)","app:","appli","applic","applied.","apply.","approaches,","arbitrari","arg","args.","argument","arguments.","arguments:","ariti","around","ask","async","at:","ataraxi","attach","attacht","author","authorizationmiddlewar","avail","average,","back","back.","base","baselin","basic","befor","behavior","behind","below","bench","benchmark.","best","better","better,","better.","between","bi","bide","bidi,","blown","bonus,","bootstrapping:","both","box","box.","bubblin'","build","built","busi","but,","cach","cache:","call","callback.","case","case,","case.","catch","cc])","chain","chain,","channel","cheng","child","choos","ci","class","cleanli","client","clojur","clojure(script)","clojure(script),","clojure,","clojure.core/ex","clojure.core/fn?,","clojure.core/string?","clojure.lang.exceptioninfo:","clojure.spec","clojure.spec)","clojure.spec.alpha/explain","clojure.specs.","clojurescript,","clojurian","closur","co","code","code,","coerc","coerce!","coerced.","coercer","coercers.","coercers}))","coercion","coercion)","coercion,","coercion.","coercion/compil","coercion:","coercion])","colect","command","common","commun","compar","compil","compilation,","compilation.","compiled.","compiler,","compilerexcept","compiling:","compiling:(/users/tommi/projects/metosin/reitit/test/cljc/reitit/spec_test.cljc:151:1)","compojur","components.","compos","composit","comput","configur","conflicit","conflict","conflicts!)","conflicts.","conflicts:","conform","conforming,","conj","consist","constant,","contain","contribut","core","core):","cores:","correct","correctly:","cqr","creat","created,","created.","creation","creation:","currently,","custom","data","data)","data,","data.","data:","db","db)","debug","decid","declar","default","default,","defaults:","defin","defined).","defined,","defined.","defined:","definit","definitions.","degrade.","demonstr","depend","dependeci","depends.","descript","design,","destructur","detail","details.","detect","dev","develop","differ","differences:","differenti","direct","disabl","discussions,","do","doc","doesn't","don't","done","done.","done:","downsid","driven","duct","dynam","e.g.","e/expound","e])","easi","easier","effec","effect","element","enabl","endpoint","endpoint.","endpoints.","enforc","enough","ensur","entri","environment.","error","error.","error:","errors.","especi","etc.","etc.)","even","ex","exact","exampl","except","exceptioninfo","execut","exist","expand","expans","expect","explain","explicit","explicitli","expound","expound/printer)","expound])","extend","extens","extern","extra","extract","fail","failed...","failed:","fails,","fallback","fals","false)","faq","fast","fast),","fast,","fast.","faster","faster.","fastest","featur","feature,","felt","few","first","fix","flatten","flattened:","fn?","follow","following:","form","format","found","found,","found.","free","frequent","full","fulli","fun","function","function,","function.","functions,","gb","gener","get","ghz","given","go.","go:","good","good,","good:","great","guard","guide.","handl","handler","handler)))","handler.","handler/middlewar","handler:","handler]","handler])","handler])))","handler]]]]","handlers,","handler}","handler}]","handler}])))","handler}]]","handler}]]])))","handler}}]]","handler}}]])))","handler}}]]]","handler}}]]])))","hard.","harder","hash","have","haven't","heart","help","helper","here","here'","here,","here.","higher","hoc","hold","hook","hooks.","hopefulli","http","i7","id","id\"","id\",","id\"]","id)","id))","id)))","id))))","id/ord","id/orders\"]","id]","id]))","id]]))","idea","ident","identifier:","identity]","identity]}","identity}]","identity}}]]","identity}}]]))","id}","id},","ignor","ignored.","immut","implement","implementation.","implicit","implicitli","in:","infinit","info","inform","information:","initi","inject","injectuserintorequestmiddlewar","inlin","inspect","instanc","instead","instrument","int","int,","int?}}},","int?}}}]","intel","interceptor","interceptor)","interceptor))","interceptor]","interceptors.","interest","intern","interpet","introduct","int}}},","invalid","invalid:","inventoried.","inventories,","invok","issu","it'","it,","it?","itself","java.lang.string,","jvm","kb","key","key,","key.","key:","keys)","keys,","keys:","keyset.","keyword","kind","know","know.","known","l2","l3","languages,","larg","large!","latter","leaf","less","let'","level","level,","lib","librari","library.","library?","libs,","libs.","life","life)","link","list","local","log","long","look","lookup","lookup,","lot","lot.","lupapiste.","macbook","macbookpro11,3","macro","magical.","magnitud","magnitude.","main","make","manag","mani","manual","map","map.","maps)","match","match)","match))))","match,","match.","match:","match?","matched)","matched),","matched,","matches,","matter","matter?","mb","mean","measur","measure?","memory:","merg","merge.","message.","meta","method","method.","methods.","mid","middlewar","middleware)","middleware,","middleware.","middleware/interceptor","middleware:","middleware])","middleware]}","middleware]}})))","mind.","miss","mistakes.","mix","mode?","mode?]","model","models.","modul","modular","modules:","more","more.","mount","mount.\"","move","much","multimethod","multipl","mutabl","mw","name","name!","name.","name:","name]","names:","namespac","nearli","need","nest","new","nil","nil).","nil)]])","nil,","nil.","nil:","nil]","node.j","non","none","normal","not.","notabl","note","note:","nothing.","nothing.\"","now","ns","number","of:","ok","on","on:","once,","opaqu","opensensor","ops/sec","opt","optim","optin","option","option,","optionally,","options.","options:","opts)]","opts]","order","order\"","order.","order]]","order]}}])","origin","otherwis","ourselv","out","out*","over","overrid","overridden","packag","param","paramet","parameter:","parameters.","parameters:","params]))","params]}}","params}},","params}}]","paremet","pars","part","partial","partialmatch","partialmatch,","pass","path","path)","path)]","path.","path])","pedest","pedestal).","pedestal.","penalty.","per","perf","perf.","perfect.","perform","performance,","performance.","performance:","pick","place.","pleas","plu","pluggabl","plumat","port","pos?","positiveint","positiveint)\"},","positiveint}}}","possibl","power","powerful.","pre","precompute/compil","predicate:","prefix","present","present:","pretti","primitives!","principl","print","println","pro","problem.","problem:","problems.","process","processing,","processing.","processor","processors:","produc","programmatically:","progress","project:","proof","protocol","protocol)","protocol,","protocol.","protocol:","provid","public","pull","purpose:","push","qualifi","queri","question","r","r])","raise))))))","raise)))))))})","raise]","rational","raw","re","read","readi","readme:","real","realistic.","realli","really,","reason","reasoning:","record","recurs","registri","regress","rehost","reitit","reitit,","reitit.coercion.schema/coercion","reitit.coercion.spec/coercion","reitit.coercion/coerce!","reitit.coercion/coercion","reitit.coercion/compil","reitit.cor","reitit.core/expand","reitit.core/expand)","reitit.core/match","reitit.core/rout","reitit.core/router:","reitit.core/throw","reitit.middleware/intomiddlewar","reitit.middleware/middlewar","reitit.ring.coercion:","reitit.ring.spec/valid","reitit.ring/get","reitit.ring/rout","reitit.spec","reitit.spec/valid","reitit/conflict","reitit/expand","rel","relev","render","repl","repl`","repo","request","request)","request)))","request)))))","request))))})","request.","request:","request}]","requir","required)","resolut","resolution)","resolv","respond","respons","response))","response)))","response.","response:","response]","responses)","responses,","responses:","responses]}","rest","rest(ish)","result","results,","results:","resut","retriev","return","returned,","returned:","reus","reuse)","revers","reverse)})))","rewritten","ring","ring,","ring/creat","ring:","ring])","roadmap","role","roles)))","roles:","roles]","roles]}","roles]}]","roles]}]]","roles]}})))","root","rout","route(s)","route))))","route,","route.","route:","router","router)","router):","router,","router.","router:","routers.","routes)","routes):","routes,","routes.","routes:","routing)","routing,","routing.","routing:","rrc/coerc","rrc])","rrs/valid","rrs])","rs/valid","rs])","rule","run","runner?","runtim","s/*explain","s/int","s/int}","s/int}}","s/int}}}]","s/int}}}]))","s/key","s/str","s])","same","sampl","satisfi","scatter","scenario","scene","schema","schema:","scientif","scope","search","second","see","segment","select","separ","separately:","sequenti","sequential)","serv","set","set,","set])","setup:","sever","shape","shine","ship","show","side","sight","silent","simpl","singl","site","size","slack.","slow,","slower","slowest","small","snappi","snapshot\"]","so,","someth","sources.","spec","spec!","spec!})","spec.","spec/int?)","spec/string?)","spec:","spec])","special","specifi","specs.","speed:","stabl","start","static","static,","step","steps.","stest])","still","sting","str","str)","str)})","string","string?","string?,","strings:","structur","str})))","stuctur","stuffm?","style","style)","sub","submap.","success","successful","successfuli","suitabl","super","support","swagger","syntax","syntax.","system.","tabl","table.","take","taken","target","test","tests,","thank","them.","thing","things.\"","third","this:","three","throw","thrown,","thrown:","thu","time","time),","time,","time.","tip","to,","to:","togeth","too).","too.","tool","tools\"","tools.spec","tools])])","top","total","total}}))})","total}}))}}]]","toward","transform","tree","tree,","tree.","tree:","trees,","trees.","tri","trie","true","trust","turn","two","type","un","undelay","under","under:","understand","unmount","unreachable.","until","unwrap","us","used.","user","user\"","user]","user]}}]","val:","valid","validation,","validation.","valu","vector","vector.","verifi","version:","via","view","view,","view]))","view},","want","want,","way","way.","welcom","welcome.","well,","whole","why?","wildcard","with?","within","without","work","working.","wrap","wrap2","wrap3","wrap})","wrap}))","written","wrong","yet.","yield","zero","zone","zone)","{\"x\"","{200","{::middleware/transform","{::role","{::rs/explain","{:coercion","{:compani","{:compil","{:conflict","{:data","{:get","{:handler","{:i","{:id","{:interceptor","{:middlewar","{:name","{:not","{:path","{:post","{:problem","{:queri","{:request","{:role","{:schema","{:spec","{:statu","{:total","{:uri","{:user","{:valid","{:x","{:z","{:zone","{method","{rout","{}","{})","|","~200","~300","µs","µs."],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"Introduction","keywords":"","body":"Introduction\nReitit is a small Clojure(Script) library for data-driven routing.\n\nSimple data-driven route syntax\nRoute conflict resolution\nFirst-class route data\nBi-directional routing\nPluggable coercion (schema & clojure.spec)\nExtendable\nModular\nFast\n\nThere are also a separate Ring-router module with data-driven middleware.\nTo use Reitit, add the following dependecy to your project:\n[metosin/reitit \"0.1.0-SNAPSHOT\"]\n\nOptionally, the parts can be required separately:\n[metosin/reitit-core \"0.1.0-SNAPSHOT\"] ; just the router\n[metosin/reitit-ring \"0.1.0-SNAPSHOT\"] ; ring-router\n[metosin/reitit-spec \"0.1.0-SNAPSHOT\"] ; spec coercion\n[metosin/reitit-schema \"0.1.0-SNAPSHOT\"] ; schema coercion\n\nFor discussions, there is a #reitit channel in Clojurians slack.\nExamples\nSimple router\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [[\"/api/ping\" ::ping]\n [\"/api/orders/:id\" ::order-by-id]]))\n\nRouting:\n(r/match-by-path router \"/api/ipa\")\n; nil\n\n(r/match-by-path router \"/api/ping\")\n; #Match{:template \"/api/ping\"\n; :data {:name ::ping}\n; :result nil\n; :params {}\n; :path \"/api/ping\"}\n\n(r/match-by-path router \"/api/orders/1\")\n; #Match{:template \"/api/orders/:id\"\n; :data {:name ::order-by-id}\n; :result nil\n; :params {:id \"1\"}\n; :path \"/api/orders/1\"}\n\nReverse-routing:\n(r/match-by-name router ::ipa)\n; nil\n\n(r/match-by-name router ::ping)\n; #Match{:template \"/api/ping\"\n; :data {:name ::ping}\n; :result nil\n; :params {}\n; :path \"/api/ping\"}\n\n(r/match-by-name router ::order-by-id)\n; #PartialMatch{:template \"/api/orders/:id\"\n; :data {:name :user/order-by-id}\n; :result nil\n; :params nil\n; :required #{:id}}\n\n(r/partial-match? (r/match-by-name router ::order-by-id))\n; true\n\n(r/match-by-name router ::order-by-id {:id 2})\n; #Match{:template \"/api/orders/:id\",\n; :data {:name ::order-by-id},\n; :result nil,\n; :params {:id 2},\n; :path \"/api/orders/2\"}\n\nRing-router\nRing-router adds support for :handler functions, :middleware and routing based on :request-method. It also supports pluggable parameter coercion (clojure.spec), data-driven middleware, route and middleware compilation, dynamic extensions and more.\n(require '[reitit.ring :as ring])\n\n(def handler [_]\n {:status 200, :body \"ok\"})\n\n(defn wrap [handler id]\n (fn [request]\n (update (handler request) :wrap (fnil conj '()) id)))\n\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [[wrap :api]]}\n [\"/ping\" {:get handler\n :name ::ping}]\n [\"/admin\" {:middleware [[wrap :admin]]}\n [\"/users\" {:get handler\n :post handler}]]])))\n\nRouting:\n(app {:request-method :get, :uri \"/api/admin/users\"})\n; {:status 200, :body \"ok\", :wrap (:api :admin}\n\n(app {:request-method :put, :uri \"/api/admin/users\"})\n; nil\n\nReverse-routing:\n(require '[reitit.core :as r])\n\n(-> app (ring/get-router) (r/match-by-name ::ping))\n; #Match{:template \"/api/ping\"\n; :data {:middleware [[#object[user$wrap] :api]]\n; :get {:handler #object[user$handler]}\n; :name ::ping}\n; :result #Methods{...}\n; :params nil\n; :path \"/api/ping\"}\n\n"},"basics/":{"url":"basics/","title":"Basics","keywords":"","body":"Basics\n\nRoute Syntax\nRouter\nPath-based Routing\nName-based Routing\nRoute Data\nRoute Data Validation\nRoute Conflicts\n\n"},"basics/route_syntax.html":{"url":"basics/route_syntax.html","title":"Route Syntax","keywords":"","body":"Route Syntax\nRoutes are defined as vectors of String path and optional (non-sequential) route argument child routes.\nRoutes can be wrapped in vectors and lists and nil routes are ignored.\nPaths can have path-parameters (:id) or catch-all-parameters (*path).\nExamples\nSimple route:\n[\"/ping\"]\n\nTwo routes:\n[[\"/ping\"]\n [\"/pong\"]]\n\nRoutes with route arguments:\n[[\"/ping\" ::ping]\n [\"/pong\" {:name ::pong}]]\n\nRoutes with path parameters:\n[[\"/users/:user-id\"]\n [\"/api/:version/ping\"]]\n\nRoute with catch-all parameter:\n[\"/public/*path\"]\n\nNested routes:\n[\"/api\"\n [\"/admin\" {:middleware [::admin]}\n [\"\" ::admin]\n [\"/db\" ::db]]\n [\"/ping\" ::ping]]\n\nSame routes flattened:\n[[\"/api/admin\" {:middleware [::admin], :name ::admin}]\n [\"/api/admin/db\" {:middleware [::admin], :name ::db}]\n [\"/api/ping\" {:name ::ping}]]\n\nGenerating routes\nAs routes are just data, it's easy to create them programmatically:\n(defn cqrs-routes [actions dev-mode?]\n [\"/api\" {:interceptors [::api ::db]}\n (for [[type interceptor] actions\n :let [path (str \"/\" (name interceptor))\n method (condp = type\n :query :get\n :command :post)]]\n [path {method {:interceptors [interceptor]}}])\n (if dev-mode? [\"/dev-tools\" ::dev-tools])])\n\n(cqrs-routes\n [[:query 'get-user]\n [:command 'add-user]\n [:command 'add-order]]\n false)\n; [\"/api\" {:interceptors [::api ::db]}\n; ([\"/get-user\" {:get {:interceptors [get-user]}}]\n; [\"/add-user\" {:post {:interceptors [add-user]}}]\n; [\"/add-order\" {:post {:interceptors [add-order]}}])\n; nil]\n\n"},"basics/router.html":{"url":"basics/router.html","title":"Router","keywords":"","body":"Router\nRoutes are just data and for routing, we need a router instance satisfying the reitit.core/Router protocol. Routers are created with reitit.core/router function, taking the raw routes and optionally an options map.\nThe Router protocol:\n(defprotocol Router\n (router-name [this])\n (routes [this])\n (options [this])\n (route-names [this])\n (match-by-path [this path])\n (match-by-name [this name] [this name params]))\n\nCreating a router:\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [[\"/api\"\n [\"/ping\" ::ping]\n [\"/user/:id\" ::user]]]))\n\nName of the created router:\n(r/router-name router)\n; :mixed-router\n\nThe flattened route tree:\n(r/routes router)\n; [[\"/api/ping\" {:name :user/ping}]\n; [\"/api/user/:id\" {:name :user/user}]]\n\nBehind the scenes\nWhen router is created, the following steps are done:\n\nroute tree is flattened\nroute arguments are expanded (via reitit.core/Expand protocol) and optionally coerced\nroute conflicts are resolved\nactual router implementation is selected and created\noptionally route data gets compiled\n\n"},"basics/path_based_routing.html":{"url":"basics/path_based_routing.html","title":"Path-based Routing","keywords":"","body":"Path-based Routing\nPath-based routing is done using the reitit.core/match-by-path function. It takes the router and path as arguments and returns one of the following:\n\nnil, no match\nPartialMatch, path matched, missing path-parameters (only in reverse-routing)\nMatch, exact match\n\nGiven a router:\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [[\"/api\"\n [\"/ping\" ::ping]\n [\"/user/:id\" ::user]]]))\n\nNo match returns nil:\n(r/match-by-path router \"/hello\")\n; nil\n\nMatch provides the route information:\n(r/match-by-path router \"/api/user/1\")\n; #Match{:template \"/api/user/:id\"\n; :data {:name :user/user}\n; :path \"/api/user/1\"\n; :result nil\n; :params {:id \"1\"}}\n\n"},"basics/name_based_routing.html":{"url":"basics/name_based_routing.html","title":"Name-based Routing","keywords":"","body":"Name-based (reverse) Routing\nAll routes which have :name route data defined, can also be matched by name.\nGiven a router:\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [[\"/api\"\n [\"/ping\" ::ping]\n [\"/user/:id\" ::user]]]))\n\nListing all route names:\n(r/route-names router)\n; [:user/ping :user/user]\n\nNo match returns nil:\n(r/match-by-name router ::kikka)\nnil\n\nMatching a route:\n(r/match-by-name router ::ping)\n; #Match{:template \"/api/ping\"\n; :data {:name :user/ping}\n; :result nil\n; :params {}\n; :path \"/api/ping\"}\n\nIf not all path-parameters are set, a PartialMatch is returned:\n(r/match-by-name router ::user)\n; #PartialMatch{:template \"/api/user/:id\",\n; :data {:name :user/user},\n; :result nil,\n; :params nil,\n; :required #{:id}}\n\n(r/partial-match? (r/match-by-name router ::user))\n; true\n\nWith provided path-parameters:\n(r/match-by-name router ::user {:id \"1\"})\n; #Match{:template \"/api/user/:id\"\n; :data {:name :user/user}\n; :path \"/api/user/1\"\n; :result nil\n; :params {:id \"1\"}}\n\nThere is also a exception throwing version:\n(r/match-by-name! router ::user)\n; ExceptionInfo missing path-params for route /api/user/:id: #{:id}\n\n"},"basics/route_data.html":{"url":"basics/route_data.html","title":"Route Data","keywords":"","body":"Route Data\nRoute data is the heart of this library. Routes can have any data attachted to them. Data is interpeted either by the client application or the Router via it's :coerce and :compile hooks. Together with clojure.spec -validation this enables co-existence of both adaptive and principled components.\nRoutes can have a non-sequential route argument that is expanded into route data map when a router is created.\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [[\"/ping\" ::ping]\n [\"/pong\" identity]\n [\"/users\" {:get {:roles #{:admin}\n :handler identity}}]]))\n\nThe expanded route data can be retrieved from a router with routes and is returned with match-by-path and match-by-name in case of a route match.\n(r/routes router)\n; [[\"/ping\" {:name :user/ping}]\n; [\"/pong\" {:handler identity]}\n; [\"/users\" {:get {:roles #{:admin}\n; :handler identity}}]]\n\n(r/match-by-path router \"/ping\")\n; #Match{:template \"/ping\"\n; :data {:name :user/ping}\n; :result nil\n; :params {}\n; :path \"/ping\"}\n\n(r/match-by-name router ::ping)\n; #Match{:template \"/ping\"\n; :data {:name :user/ping}\n; :result nil\n; :params {}\n; :path \"/ping\"}\n\nNested route data\nFor nested route trees, route data is accumulated recursively from root towards leafs using meta-merge. Default behavior for colections is :append, but this can be overridden to :prepend, :replace or :displace using the target meta-data.\nAn example router with nested data:\n(def router\n (r/router\n [\"/api\" {:interceptors [::api]}\n [\"/ping\" ::ping]\n [\"/admin\" {:roles #{:admin}}\n [\"/users\" ::users]\n [\"/db\" {:interceptors [::db]\n :roles ^:replace #{:db-admin}}]]]))\n\nResolved route tree:\n(r/routes router)\n; [[\"/api/ping\" {:interceptors [::api]\n; :name :user/ping}]\n; [\"/api/admin/users\" {:interceptors [::api]\n; :roles #{:admin}\n; :name ::users} nil]\n; [\"/api/admin/db\" {:interceptors [::api ::db]\n; :roles #{:db-admin}}]]\n\nExpansion\nBy default, reitit/Expand protocol is used to expand the route arguments. It expands keywords into :name and functions into :handler key in the route data map. It's easy to add custom expanders and one can chenge the whole expand implementation via router options.\n(def router\n (r/router\n [[\"/ping\" ::ping]\n [\"/pong\" identity]\n [\"/users\" {:get {:roles #{:admin}\n :handler identity}}]]))\n\n(r/routes router)\n; [[\"/ping\" {:name :user/ping}]\n; [\"/pong\" {:handler identity]}\n; [\"/users\" {:get {:roles #{:admin}\n; :handler identity}}]]\n\n(r/match-by-path router \"/ping\")\n; #Match{:template \"/ping\"\n; :data {:name :user/ping}\n; :result nil\n; :params {}\n; :path \"/ping\"}\n\n"},"basics/route_data_validation.html":{"url":"basics/route_data_validation.html","title":"Route Data Validation","keywords":"","body":"Route Data Validation\nRoute data can be anything, so it's easy to do mistakes. Accidentally using a :role key instead of :roles might render the whole routing app without any authorization in place.\nTo fail fast, we could use the custom :coerce and :compile hooks to apply data validation and throw exceptions on first sighted problem.\nBut there is a better way. Router also has a :validation hook to validate the whole route tree after it's successfuly compiled. It expects a 2-arity function routes opts => () that can side-effect in case of validation errors.\nclojure.spec\nNamespace reitit.spec contains specs for main parts of reitit.core and a helper function validate-spec! that runs spec validation for all route data and throws an exception if any errors are found.\nA Router with invalid route data:\n(require '[reitit.core :as r])\n\n(r/router\n [\"/api\" {:handler \"identity\"}])\n; #object[reitit.core$...]\n\nFails fast with clojure.spec validation turned on:\n(require '[reitit.spec :as rs])\n\n(r/router\n [\"/api\" {:handler \"identity\"}]\n {:validate rs/validate-spec!})\n; CompilerException clojure.lang.ExceptionInfo: Invalid route data:\n;\n; -- On route -----------------------\n;\n; \"/api\"\n;\n; In: [:handler] val: \"identity\" fails spec: :reitit.spec/handler at: [:handler] predicate: fn?\n;\n; {:problems (#reitit.spec.Problem{:path \"/api\", :scope nil, :data {:handler \"identity\"}, :spec :reitit.spec/default-data, :problems #:clojure.spec.alpha{:problems ({:path [:handler], :pred clojure.core/fn?, :val \"identity\", :via [:reitit.spec/default-data :reitit.spec/handler], :in [:handler]}), :spec :reitit.spec/default-data, :value {:handler \"identity\"}}})}, compiling: ...\n\nCustomizing spec validation\nrs/validate-spec! reads the following router options:\n\n\n\nkey\ndescription\n\n\n\n\n:spec\nthe spec to verify the route data (default ::rs/default-data)\n\n\n::rs/explain\ncustom explain function (default clojure.spec.alpha/explain-str)\n\n\n\nNOTE: clojure.spec implicitly validates all values with fully-qualified keys if specs exist with the same name.\nBelow is an example of using expound to pretty-print route data problems.\n(require '[clojure.spec.alpha :as s])\n(require '[expound.alpha :as e])\n\n(s/def ::role #{:admin :manager})\n(s/def ::roles (s/coll-of ::role :into #{}))\n\n(r/router\n [\"/api\" {:handler identity\n ::roles #{:adminz}}]\n {::rs/explain e/expound-str\n :validate rs/validate-spec!})\n; CompilerException clojure.lang.ExceptionInfo: Invalid route data:\n;\n; -- On route -----------------------\n;\n; \"/api\"\n;\n; -- Spec failed --------------------\n;\n; {:handler ..., :user/roles #{:adminz}}\n; ^^^^^^^\n;\n; should be one of: `:admin`,`:manager`\n;\n; -- Relevant specs -------\n;\n; :user/role:\n; #{:admin :manager}\n; :user/roles:\n; (clojure.spec.alpha/coll-of :user/role :into #{})\n; :reitit.spec/default-data:\n; (clojure.spec.alpha/keys\n; :opt-un\n; [:reitit.spec/name :reitit.spec/handler])\n;\n; -------------------------\n; Detected 1 error\n;\n; {:problems (#reitit.spec.Problem{:path \"/api\", :scope nil, :data {:handler #object[clojure.core$identity 0x15b59b0e \"clojure.core$identity@15b59b0e\"], :user/roles #{:adminz}}, :spec :reitit.spec/default-data, :problems #:clojure.spec.alpha{:problems ({:path [:user/roles], :pred #{:admin :manager}, :val :adminz, :via [:reitit.spec/default-data :user/roles :user/role], :in [:user/roles 0]}), :spec :reitit.spec/default-data, :value {:handler #object[clojure.core$identity 0x15b59b0e \"clojure.core$identity@15b59b0e\"], :user/roles #{:adminz}}}})}, compiling: ...\n\nExplicitly requiring a ::roles key in a route data:\n(r/router\n [\"/api\" {:handler identity}]\n {:spec (s/merge (s/keys :req [::roles]) ::rs/default-data)\n ::rs/explain e/expound-str\n :validate rs/validate-spec!})\n; CompilerException clojure.lang.ExceptionInfo: Invalid route data:\n; \n; -- On route -----------------------\n; \n; \"/api\"\n; \n; -- Spec failed --------------------\n; \n; {:handler\n; #object[clojure.core$identity 0x15b59b0e \"clojure.core$identity@15b59b0e\"]}\n; \n; should contain key: `:user/roles`\n; \n; | key | spec |\n; |-------------+----------------------------------------|\n; | :user/roles | (coll-of #{:admin :manager} :into #{}) |\n; \n; \n; \n; -------------------------\n; Detected 1 error\n; \n; {:problems (#reitit.spec.Problem{:path \"/api\", :scope nil, :data {:handler #object[clojure.core$identity 0x15b59b0e \"clojure.core$identity@15b59b0e\"]}, :spec #object[clojure.spec.alpha$merge_spec_impl$reify__2124 0x7461744b \"clojure.spec.alpha$merge_spec_impl$reify__2124@7461744b\"], :problems #:clojure.spec.alpha{:problems ({:path [], :pred (clojure.core/fn [%] (clojure.core/contains? % :user/roles)), :val {:handler #object[clojure.core$identity 0x15b59b0e \"clojure.core$identity@15b59b0e\"]}, :via [], :in []}), :spec #object[clojure.spec.alpha$merge_spec_impl$reify__2124 0x7461744b \"clojure.spec.alpha$merge_spec_impl$reify__2124@7461744b\"], :value {:handler #object[clojure.core$identity 0x15b59b0e \"clojure.core$identity@15b59b0e\"]}}})}, compiling:(/Users/tommi/projects/metosin/reitit/test/cljc/reitit/spec_test.cljc:151:1)\n\n"},"basics/route_conflicts.html":{"url":"basics/route_conflicts.html","title":"Route Conflicts","keywords":"","body":"Route Conflicts\nMost routing libraries allow conflicting paths within a router. On lookup, the first match is used making rest of the matching routes effecively unreachable. This is not good, especially if route tree is merged from multiple sources.\nReitit resolves this by running explicit conflicit resolution when a Router is created. Conflicting routes are passed into a :conflicts callback. Default implementation throws ex-info with a descriptive message.\nExamples router with conflicting routes:\n(require '[reitit.core :as r])\n\n(def routes\n [[\"/ping\"]\n [\"/:user-id/orders\"]\n [\"/bulk/:bulk-id\"]\n [\"/public/*path\"]\n [\"/:version/status\"]])\n\nBy default, ExceptionInfo is thrown:\n(r/router routes)\n; CompilerException clojure.lang.ExceptionInfo: Router contains conflicting routes:\n;\n; /:user-id/orders\n; -> /public/*path\n; -> /bulk/:bulk-id\n;\n; /bulk/:bulk-id\n; -> /:version/status\n;\n; /public/*path\n; -> /:version/status\n;\n\nJust logging the conflicts:\n(r/router\n routes\n {:conflicts (comp println reitit/conflicts-str)})\n; Router contains conflicting routes:\n;\n; /:user-id/orders\n; -> /public/*path\n; -> /bulk/:bulk-id\n;\n; /bulk/:bulk-id\n; -> /:version/status\n;\n; /public/*path\n; -> /:version/status\n;\n\n"},"coercion/":{"url":"coercion/","title":"Coercion","keywords":"","body":"Coercion\n\nCoercion Explained\nPlumatic Schema\nClojure.spec\nData-specs\n\n"},"coercion/coercion.html":{"url":"coercion/coercion.html","title":"Coercion Explained","keywords":"","body":"Coercion Explained\nCoercion is a process of transforming parameters (and responses) from one format into another. Reitit separates routing and coercion into two separate steps.\nBy default, all wildcard and catch-all parameters are parsed as Strings:\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [\"/:company/users/:user-id\" ::user-view]))\n\nMatch with the parsed :params as Strings:\n(r/match-by-path r \"/metosin/users/123\")\n; #Match{:template \"/:company/users/:user-id\",\n; :data {:name :user/user-view},\n; :result nil,\n; :params {:company \"metosin\", :user-id \"123\"},\n; :path \"/metosin/users/123\"}\n\nTo enable parameter coercion, the following things need to be done:\n\nDefine a Coercion for the routes\nDefine types for the parameters\nCompile coercers for the types\nApply the coercion\n\nDefine Coercion\nreitit.coercion/Coercion is a protocol defining how types are defined, coerced and inventoried.\nReitit ships with the following coercion modules:\n\nreitit.coercion.schema/coercion for plumatic schema\nreitit.coercion.spec/coercion for both clojure.spec and data-specs\n\nCoercion can be attached to route data under :coercion key. There can be multiple Coercion implementations within a single router, normal scoping rules apply.\nDefining parameters\nRoute parameters can be defined via route data :parameters. It has keys for different type of parameters: :query, :body, :form, :header and :path. Syntax for the actual parameters depends on the Coercion implementation.\nExample with Schema path-parameters:\n(require '[reitit.coercion.schema])\n(require '[schema.core :as s])\n\n(def router\n (r/router\n [\"/:company/users/:user-id\" {:name ::user-view\n :coercion reitit.coercion.schema/coercion\n :parameters {:path {:company s/Str\n :user-id s/Int}}}]))\n\nA Match:\n(r/match-by-path r \"/metosin/users/123\")\n; #Match{:template \"/:company/users/:user-id\",\n; :data {:name :user/user-view,\n; :coercion >\n; :parameters {:path {:company java.lang.String,\n; :user-id Int}}},\n; :result nil,\n; :params {:company \"metosin\", :user-id \"123\"},\n; :path \"/metosin/users/123\"}\n\nCoercion was not applied. Why? In Reitit, routing and coercion are separate processes and we haven't applied the coercion yet. We need to apply it ourselves after the successfull routing.\nBut now we should have enough data on the match to apply the coercion.\nCompiling coercers\nBefore the actual coercion, we need to compile the coercers against the route data. Compiled coercers yield much better performance and the manual step of adding a coercion compiler makes things explicit and non-magical.\nCompiling can be done via a Middleware, Interceptor or a Router. We apply it now at router-level, effecting all routes (with :parameters and :coercion defined).\nThere is a helper function reitit.coercion/compile-request-coercers just for this:\n(require '[reitit.coercion :as coercion])\n(require '[reitit.coercion.schema])\n(require '[schema.core :as s])\n\n(def router\n (r/router\n [\"/:company/users/:user-id\" {:name ::user-view\n :coercion reitit.coercion.schema/coercion\n :parameters {:path {:company s/Str\n :user-id s/Int}}}]\n {:compile coercion/compile-request-coercers}))\n\nRouting again:\n(r/match-by-path r \"/metosin/users/123\")\n; #Match{:template \"/:company/users/:user-id\",\n; :data {:name :user/user-view,\n; :coercion >\n; :parameters {:path {:company java.lang.String,\n; :user-id Int}}},\n; :result {:path #object[reitit.coercion$request_coercer$]},\n; :params {:company \"metosin\", :user-id \"123\"},\n; :path \"/metosin/users/123\"}\n\nThe compiler added a :result key into the match (done just once, at router creation time), which holds the compiled coercers. We are almost done.\nApplying coercion\nWe can use a helper function reitit.coercion/coerce! to do the actual coercion, based on a Match:\n(coercion/coerce!\n (r/match-by-path router \"/metosin/users/123\"))\n; {:path {:company \"metosin\", :user-id 123}}\n\nWe get the coerced paremeters back. If a coercion fails, a typed (:reitit.coercion/request-coercion) ExceptionInfo is thrown, with data about the actual error:\n(coercion/coerce!\n (r/match-by-path router \"/metosin/users/ikitommi\"))\n; => ExceptionInfo Request coercion failed:\n; #CoercionError{:schema {:company java.lang.String, :user-id Int, Any Any},\n; :errors {:user-id (not (integer? \"ikitommi\"))}}\n; clojure.core/ex-info (core.clj:4739)\n\nFull example\nHere's an full example for doing routing and coercion with Reitit and Schema:\n(require '[reitit.coercion.schema])\n(require '[reitit.coercion :as coercion])\n(require '[reitit.core :as r])\n(require '[schema.core :as s])\n\n(def router\n (r/router\n [\"/:company/users/:user-id\" {:name ::user-view\n :coercion reitit.coercion.schema/coercion\n :parameters {:path {:company s/Str\n :user-id s/Int}}}]\n {:compile coercion/compile-request-coercers}))\n\n(defn match-by-path-and-coerce! [path]\n (if-let [match (r/match-by-path router path)]\n (assoc match :parameters (coercion/coerce! match))))\n\n(match-by-path-and-coerce! \"/metosin/users/123\")\n; #Match{:template \"/:company/users/:user-id\",\n; :data {:name :user/user-view,\n; :coercion >\n; :parameters {:path {:company java.lang.String,\n; :user-id Int}}},\n; :result {:path #object[reitit.coercion$request_coercer$]},\n; :params {:company \"metosin\", :user-id \"123\"},\n; :parameters {:path {:company \"metosin\", :user-id 123}}\n; :path \"/metosin/users/123\"}\n\n(match-by-path-and-coerce! \"/metosin/users/ikitommi\")\n; => ExceptionInfo Request coercion failed...\n\nRing Coercion\nFor a full-blown http-coercion, see the ring coercion.\nThanks to\n\ncompojure-api for the initial Coercion protocol\nschema and schema-tools for Schema Coercion\nspec-tools for Spec Coercion\n\n"},"coercion/schema_coercion.html":{"url":"coercion/schema_coercion.html","title":"Plumatic Schema","keywords":"","body":"Plumatic Schema Coercion\nPlumatic Schema is a Clojure(Script) library for declarative data description and validation.\n(require '[reitit.coercion.schema])\n(require '[reitit.coercion :as coercion])\n(require '[schema.core :as s])\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [\"/:company/users/:user-id\" {:name ::user-view\n :coercion reitit.coercion.schema/coercion\n :parameters {:path {:company s/Str\n :user-id s/Int}}}]\n {:compile coercion/compile-request-coercers}))\n\n(defn match-by-path-and-coerce! [path]\n (if-let [match (r/match-by-path router path)]\n (assoc match :parameters (coercion/coerce! match))))\n\nSuccessful coercion:\n(match-by-path-and-coerce! \"/metosin/users/123\")\n; #Match{:template \"/:company/users/:user-id\",\n; :data {:name :user/user-view,\n; :coercion >\n; :parameters {:path {:company java.lang.String,\n; :user-id Int}}},\n; :result {:path #object[reitit.coercion$request_coercer$]},\n; :params {:company \"metosin\", :user-id \"123\"},\n; :parameters {:path {:company \"metosin\", :user-id 123}}\n; :path \"/metosin/users/123\"}\n\nFailing coercion:\n(match-by-path-and-coerce! \"/metosin/users/ikitommi\")\n; => ExceptionInfo Request coercion failed...\n\n"},"coercion/clojure_spec_coercion.html":{"url":"coercion/clojure_spec_coercion.html","title":"Clojure.spec","keywords":"","body":"Clojure.spec Coercion\nThe clojure.spec library specifies the structure of data, validates or destructures it, and can generate data based on the spec.\nNOTE: Currently, clojure.spec doesn't support runtime transformations via conforming, so one needs to wrap all specs into Spec Records to get the coercion working.\n(require '[reitit.coercion.spec])\n(require '[reitit.coercion :as coercion])\n(require '[spec-tools.spec :as spec])\n(require '[clojure.spec.alpha :as s])\n(require '[reitit.core :as r])\n\n;; need to wrap the primitives!\n(s/def ::company spec/string?)\n(s/def ::user-id spec/int?)\n(s/def ::path-params (s/keys :req-un [::company ::user-id]))\n\n(def router\n (r/router\n [\"/:company/users/:user-id\" {:name ::user-view\n :coercion reitit.coercion.spec/coercion\n :parameters {:path ::path-params}}]\n {:compile coercion/compile-request-coercers}))\n\n(defn match-by-path-and-coerce! [path]\n (if-let [match (r/match-by-path router path)]\n (assoc match :parameters (coercion/coerce! match))))\n\nSuccessful coercion:\n(match-by-path-and-coerce! \"/metosin/users/123\")\n; #Match{:template \"/:company/users/:user-id\",\n; :data {:name :user/user-view,\n; :coercion >\n; :parameters {:path ::path-params}},\n; :result {:path #object[reitit.coercion$request_coercer$]},\n; :params {:company \"metosin\", :user-id \"123\"},\n; :parameters {:path {:company \"metosin\", :user-id 123}}\n; :path \"/metosin/users/123\"}\n\nFailing coercion:\n(match-by-path-and-coerce! \"/metosin/users/ikitommi\")\n; => ExceptionInfo Request coercion failed...\n\n"},"coercion/data_spec_coercion.html":{"url":"coercion/data_spec_coercion.html","title":"Data-specs","keywords":"","body":"Data-spec Coercion\nData-specs is alternative, macro-free syntax to define clojure.specs. As a bonus, supports the runtime transformations via conforming out-of-the-box.\n(require '[reitit.coercion.spec])\n(require '[reitit.coercion :as coercion])\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [\"/:company/users/:user-id\" {:name ::user-view\n :coercion reitit.coercion.spec/coercion\n :parameters {:path {:company string?\n :user-id int?}}}]\n {:compile coercion/compile-request-coercers}))\n\n(defn match-by-path-and-coerce! [path]\n (if-let [match (r/match-by-path router path)]\n (assoc match :parameters (coercion/coerce! match))))\n\nSuccessful coercion:\n(match-by-path-and-coerce! \"/metosin/users/123\")\n; #Match{:template \"/:company/users/:user-id\",\n; :data {:name :user/user-view,\n; :coercion >\n; :parameters {:path {:company string?,\n; :user-id int?}}},\n; :result {:path #object[reitit.coercion$request_coercer$]},\n; :params {:company \"metosin\", :user-id \"123\"},\n; :parameters {:path {:company \"metosin\", :user-id 123}}\n; :path \"/metosin/users/123\"}\n\nFailing coercion:\n(match-by-path-and-coerce! \"/metosin/users/ikitommi\")\n; => ExceptionInfo Request coercion failed...\n\n"},"advanced/":{"url":"advanced/","title":"Advanced","keywords":"","body":"Advanced\n\nConfiguring Routers\nDifferent Routers\nRoute Validation\nInterceptors\n\n"},"advanced/configuring_routers.html":{"url":"advanced/configuring_routers.html","title":"Configuring Routers","keywords":"","body":"Configuring Routers\nRouters can be configured via options. The following options are available for the reitit.core/router:\n\n\n\nkey\ndescription\n\n\n\n\n:path\nBase-path for routes\n\n\n:routes\nInitial resolved routes (default [])\n\n\n:data\nInitial route data (default {})\n\n\n:spec\nclojure.spec definition for a route data, see reitit.spec on how to use this\n\n\n:expand\nFunction of arg opts => data to expand route arg to route data (default reitit.core/expand)\n\n\n:coerce\nFunction of route opts => route to coerce resolved route, can throw or return nil\n\n\n:compile\nFunction of route opts => result to compile a route handler\n\n\n:validate\nFunction of routes opts => () to validate route (data) via side-effects\n\n\n:conflicts\nFunction of {route #{route}} => () to handle conflicting routes (default reitit.core/throw-on-conflicts!)\n\n\n:router\nFunction of routes opts => router to override the actual router implementation\n\n\n\n"},"advanced/different_routers.html":{"url":"advanced/different_routers.html","title":"Different Routers","keywords":"","body":"Different Routers\nReitit ships with several different implementations for the Router protocol, originally based on the Pedestal implementation. router function selects the most suitable implementation by inspecting the expanded routes. The implementation can be set manually using :router option, see configuring routers.\n\n\n\nrouter\ndescription\n\n\n\n\n:linear-router\nMatches the routes one-by-one starting from the top until a match is found. Works with any kind of routes. Slow, but works with all route trees.\n\n\n:lookup-router\nFast router, uses hash-lookup to resolve the route. Valid if no paths have path or catch-all parameters and there are no Route conflicts.\n\n\n:mixed-router\nCreates internally a :segment-router for wildcard routes and a :lookup-router or :single-static-path-router for static routes. Valid only if there are no Route conflicts.\n\n\n:single-static-path-router\nSuper fast router: sting-matches the route. Valid only if there is one static route.\n\n\n:segment-router\nRouter that creates a optimized search trie out of an route table. Much faster than :linear-router for wildcard routes. Valid only if there are no Route conflicts.\n\n\n\nThe router name can be asked from the router:\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [[\"/ping\" ::ping]\n [\"/api/:users\" ::users]]))\n\n(r/router-name router)\n; :mixed-router\n\n"},"advanced/route_validation.html":{"url":"advanced/route_validation.html","title":"Route Validation","keywords":"","body":"Route validation\nNamespace reitit.spec contains clojure.spec definitions for raw-routes, routes, router and router options.\nExample\n(require '[clojure.spec.alpha :as s])\n(require '[reitit.spec :as spec])\n\n(def routes-from-db\n [\"tenant1\" ::tenant1])\n\n(s/valid? ::spec/raw-routes routes-from-db)\n; false\n\n(s/explain ::spec/raw-routes routes-from-db)\n; In: [0] val: \"tenant1\" fails spec: :reitit.spec/path at: [:route :path] predicate: (or (blank? %) (starts-with? % \"/\"))\n; In: [0] val: \"tenant1\" fails spec: :reitit.spec/raw-route at: [:routes] predicate: (cat :path :reitit.spec/path :arg (? :reitit.spec/arg) :childs (* (and (nilable :reitit.spec/raw-route))))\n; In: [1] val: :user/tenant1 fails spec: :reitit.spec/raw-route at: [:routes] predicate: (cat :path :reitit.spec/path :arg (? :reitit.spec/arg) :childs (* (and (nilable :reitit.spec/raw-route))))\n; :clojure.spec.alpha/spec :reitit.spec/raw-routes\n; :clojure.spec.alpha/value [\"tenant1\" :user/tenant1]\n\nAt development time\nreitit.core/router can be instrumented and use a tool like expound to pretty-print the spec problems.\nFirst add a :dev dependency to:\n[expound \"0.4.0\"] ; or higher\n\nSome bootstrapping:\n(require '[clojure.spec.test.alpha :as stest])\n(require '[expound.alpha :as expound])\n(require '[clojure.spec.alpha :as s])\n(require '[reitit.spec])\n\n(stest/instrument `reitit/router)\n(set! s/*explain-out* expound/printer)\n\nAnd we are ready to go:\n(require '[reitit.core :as r])\n\n(r/router\n [\"/api\"\n [\"/public\"\n [\"/ping\"]\n [\"pong\"]]])\n\n; CompilerException clojure.lang.ExceptionInfo: Call to #'reitit.core/router did not conform to spec:\n;\n; -- Spec failed --------------------\n;\n; Function arguments\n;\n; ([\"/api\" ...])\n; ^^^^^^\n;\n; should satisfy\n;\n; (clojure.spec.alpha/cat\n; :path\n; :reitit.spec/path\n; :arg\n; (clojure.spec.alpha/? :reitit.spec/arg)\n; :childs\n; (clojure.spec.alpha/*\n; (clojure.spec.alpha/and\n; (clojure.spec.alpha/nilable :reitit.spec/raw-route))))\n;\n; or\n;\n; (clojure.spec.alpha/cat\n; :path\n; :reitit.spec/path\n; :arg\n; (clojure.spec.alpha/? :reitit.spec/arg)\n; :childs\n; (clojure.spec.alpha/*\n; (clojure.spec.alpha/and\n; (clojure.spec.alpha/nilable :reitit.spec/raw-route))))\n;\n; -- Relevant specs -------\n;\n; :reitit.spec/raw-route:\n; (clojure.spec.alpha/cat\n; :path\n; :reitit.spec/path\n; :arg\n; (clojure.spec.alpha/? :reitit.spec/arg)\n; :childs\n; (clojure.spec.alpha/*\n; (clojure.spec.alpha/and\n; (clojure.spec.alpha/nilable :reitit.spec/raw-route))))\n; :reitit.spec/raw-routes:\n; (clojure.spec.alpha/or\n; :route\n; :reitit.spec/raw-route\n; :routes\n; (clojure.spec.alpha/coll-of :reitit.spec/raw-route :into []))\n;\n; -- Spec failed --------------------\n;\n; Function arguments\n;\n; ([... [... ... [\"pong\"]]])\n; ^^^^^^\n;\n; should satisfy\n;\n; (fn\n; [%]\n; (or\n; (clojure.string/blank? %)\n; (clojure.string/starts-with? % \"/\")))\n;\n; or\n;\n; (fn\n; [%]\n; (or\n; (clojure.string/blank? %)\n; (clojure.string/starts-with? % \"/\")))\n;\n; -- Relevant specs -------\n;\n; :reitit.spec/path:\n; (clojure.spec.alpha/and\n; clojure.core/string?\n; (clojure.core/fn\n; [%]\n; (clojure.core/or\n; (clojure.string/blank? %)\n; (clojure.string/starts-with? % \"/\"))))\n; :reitit.spec/raw-route:\n; (clojure.spec.alpha/cat\n; :path\n; :reitit.spec/path\n; :arg\n; (clojure.spec.alpha/? :reitit.spec/arg)\n; :childs\n; (clojure.spec.alpha/*\n; (clojure.spec.alpha/and\n; (clojure.spec.alpha/nilable :reitit.spec/raw-route))))\n; :reitit.spec/raw-routes:\n; (clojure.spec.alpha/or\n; :route\n; :reitit.spec/raw-route\n; :routes\n; (clojure.spec.alpha/coll-of :reitit.spec/raw-route :into []))\n;\n; -------------------------\n; Detected 2 errors\n\n"},"advanced/interceptors.html":{"url":"advanced/interceptors.html","title":"Interceptors","keywords":"","body":"Interceptors\nReitit also supports Pedestal-style interceptors.\nwork in progress\n\nport the (coericon) middleware into interceptors\nseparate Clojure(Script) runner?\nDocs\nSamples\n\n"},"ring/":{"url":"ring/","title":"Ring","keywords":"","body":"Ring\n\nRing-router\nDynamic Extensions\nData-driven Middleware\nPluggable Coercion\nRoute Data Validation\nCompiling Middleware\n\n"},"ring/ring.html":{"url":"ring/ring.html","title":"Ring-router","keywords":"","body":"Ring Router\nRing-router adds support for handlers, middleware and routing based on :request-method. Ring-router is created with reitit.ring/router function. It runs a custom route compiler, creating a optimized stucture for handling route matches, with compiled middleware chain & handlers for all request methods. It also ensures that all routes have a :handler defined.\nSimple Ring app:\n(require '[reitit.ring :as ring])\n\n(defn handler [_]\n {:status 200, :body \"ok\"})\n\n(def app\n (ring/ring-handler\n (ring/router\n [\"/ping\" handler])))\n\nApplying the handler:\n(app {:request-method :get, :uri \"/favicon.ico\"})\n; nil\n\n(app {:request-method :get, :uri \"/ping\"})\n; {:status 200, :body \"ok\"}\n\nThe expanded routes shows the compilation results:\n(-> app (ring/get-router) (reitit/routes))\n; [[\"/ping\"\n; {:handler #object[...]}\n; #Methods{:any #Endpoint{:data {:handler #object[...]},\n; :handler #object[...],\n; :middleware []}}]]\n\nNote that the compiled resuts as third element in the route vector.\nRequest-method based routing\nHandler are also looked under request-method keys: :get, :head, :patch, :delete, :options, :post or :put. Top-level handler is used if request-method based handler is not found.\n(def app\n (ring/ring-handler\n (ring/router\n [\"/ping\" {:name ::ping\n :get handler\n :post handler}])))\n\n(app {:request-method :get, :uri \"/ping\"})\n; {:status 200, :body \"ok\"}\n\n(app {:request-method :put, :uri \"/ping\"})\n; nil\n\nName-based reverse routing:\n(-> app\n (ring/get-router)\n (reitit/match-by-name ::ping)\n :path)\n; \"/ping\"\n\nMiddleware\nMiddleware can be added with a :middleware key, either to top-level or under :request-method submap. It's value should be a vector value of the following:\n\nnormal ring middleware function handler -> request -> response\nvector of middleware function handler ?args -> request -> response and optinally it's args.\n\nA middleware and a handler:\n(defn wrap [handler id]\n (fn [request]\n (handler (update request ::acc (fnil conj []) id))))\n\n(defn handler [{:keys [::acc]}]\n {:status 200, :body (conj acc :handler)})\n\nApp with nested middleware:\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [#(wrap % :api)]}\n [\"/ping\" handler]\n [\"/admin\" {:middleware [[wrap :admin]]}\n [\"/db\" {:middleware [[wrap :db]]\n :delete {:middleware [[wrap :delete]]\n :handler handler}}]]])))\n\nMiddleware is applied correctly:\n(app {:request-method :delete, :uri \"/api/ping\"})\n; {:status 200, :body [:api :handler]}\n\n(app {:request-method :delete, :uri \"/api/admin/db\"})\n; {:status 200, :body [:api :admin :db :delete :handler]}\n\nDefault handler\nBy default, if no routes match, nil is returned, which is not valid response in Ring:\n(defn handler [_]\n {:status 200, :body \"\"})\n\n(def app\n (ring/ring-handler\n (ring/router\n [\"/ping\" handler])))\n\n(app {:uri \"/invalid\"})\n; nil\n\nSetting the default-handler as a second argument to ring-handler:\n(def app\n (ring/ring-handler\n (ring/router\n [\"/ping\" handler])\n (constantly {:status 404, :body \"\"})))\n\n(app {:uri \"/invalid\"})\n; {:status 404, :body \"\"}\n\nTo get more correct http error responses, ring/create-default-handler can be used. It differentiates :not-found (no route matched), :method-not-accepted (no method matched) and :not-acceptable (handler returned nil).\nWith defaults:\n(def app\n (ring/ring-handler\n (ring/router\n [[\"/ping\" {:get handler}]\n [\"/pong\" (constantly nil)]])\n (ring/create-default-handler)))\n\n(app {:request-method :get, :uri \"/ping\"})\n; {:status 200, :body \"\"}\n\n(app {:request-method :get, :uri \"/\"})\n; {:status 404, :body \"\"}\n\n(app {:request-method :post, :uri \"/ping\"})\n; {:status 405, :body \"\"}\n\n(app {:request-method :get, :uri \"/pong\"})\n; {:status 406, :body \"\"}\n\nWith custom responses:\n(def app\n (ring/ring-handler\n (ring/router\n [[\"/ping\" {:get handler}]\n [\"/pong\" (constantly nil)]])\n (ring/create-default-handler\n {:not-found (constantly {:status 404, :body \"kosh\"})\n :method-not-allowed (constantly {:status 405, :body \"kosh\"})\n :not-acceptable (constantly {:status 406, :body \"kosh\"})})))\n\n(app {:request-method :get, :uri \"/ping\"})\n; {:status 200, :body \"\"}\n\n(app {:request-method :get, :uri \"/\"})\n; {:status 404, :body \"kosh\"}\n\n(app {:request-method :post, :uri \"/ping\"})\n; {:status 405, :body \"kosh\"}\n\n(app {:request-method :get, :uri \"/pong\"})\n; {:status 406, :body \"kosh\"}\n\nAsync Ring\nAll built-in middleware provide both 2 and 3-arity and are compiled for both Clojure & ClojureScript, so they work with Async Ring and Node.js too.\n"},"ring/dynamic_extensions.html":{"url":"ring/dynamic_extensions.html","title":"Dynamic Extensions","keywords":"","body":"Dynamic Extensions\nring-handler injects the Match into a request and it can be extracted at runtime with reitit.ring/get-match. This can be used to build ad-hoc extensions to the system.\nExample middleware to guard routes based on user roles:\n(require '[clojure.set :as set])\n\n(defn wrap-enforce-roles [handler]\n (fn [{:keys [::roles] :as request}]\n (let [required (some-> request (ring/get-match) :data ::roles)]\n (if (and (seq required) (not (set/subset? required roles)))\n {:status 403, :body \"forbidden\"}\n (handler request)))))\n\nMounted to an app via router data (effecting all routes):\n(def handler (constantly {:status 200, :body \"ok\"}))\n\n(def app\n (ring/ring-handler\n (ring/router\n [[\"/api\"\n [\"/ping\" handler]\n [\"/admin\" {::roles #{:admin}}\n [\"/ping\" handler]]]]\n {:data {:middleware [wrap-enforce-roles]}})))\n\nAnonymous access to public route:\n(app {:request-method :get, :uri \"/api/ping\"})\n; {:status 200, :body \"ok\"}\n\nAnonymous access to guarded route:\n(app {:request-method :get, :uri \"/api/admin/ping\"})\n; {:status 403, :body \"forbidden\"}\n\nAuthorized access to guarded route:\n(app {:request-method :get, :uri \"/api/admin/ping\", ::roles #{:admin}})\n; {:status 200, :body \"ok\"}\n\n"},"ring/data_driven_middleware.html":{"url":"ring/data_driven_middleware.html","title":"Data-driven Middleware","keywords":"","body":"Data-driven Middleware\nRing defines middleware as a function of type handler & args => request => response. It's relatively easy to understand and enables good performance. Downside is that the middleware-chain is just a opaque function, making things like debugging and composition hard. It's too easy to apply the middleware in wrong order.\nReitit defines middleware as data:\n\nMiddleware can be defined as first-class data entries\nMiddleware can be defined as a duct-style vector (of middleware)\nMiddleware can be optimized & compiled againt an endpoint\nMiddleware chain can be transformed by the router\n\nMiddleware as data\nAll values in the :middleware vector in the route data are coerced into reitit.middleware/Middleware Records with using the reitit.middleware/IntoMiddleware Protocol. By default, functions, maps and Middleware records are allowed.\nRecords can have arbitrary keys, but the following keys have a special purpose:\n\n\n\nkey\ndescription\n\n\n\n\n:name\nName of the middleware as a qualified keyword\n\n\n:spec\nclojure.spec definition for the route data, see route data validation (optional)\n\n\n:wrap\nThe actual middleware function of handler & args => request => response\n\n\n:compile\nMiddleware compilation function, see compiling middleware.\n\n\n\nMiddleware Records are accessible in their raw form in the compiled route results, thus available for inventories, creating api-docs etc.\nFor the actual request processing, the Records are unwrapped into normal functions and composed into a middleware function chain, yielding zero runtime penalty.\nCreating Middleware\nThe following produce identical middleware runtime function.\nFunction\n(defn wrap [handler id]\n (fn [request]\n (handler (update request ::acc (fnil conj []) id))))\n\nRecord\n(require '[reitit.middleware :as middleware])\n\n(def wrap2\n (middleware/create\n {:name ::wrap2\n :description \"Middleware that does things.\"\n :wrap wrap}))\n\nMap\n(def wrap3\n {:name ::wrap3\n :description \"Middleware that does things.\"\n :wrap wrap})\n\nUsing Middleware\n:middleware is merged to endpoints by the router.\n(require '[reitit.ring :as ring])\n\n(defn handler [{:keys [::acc]}]\n {:status 200, :body (conj acc :handler)})\n\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [[wrap 1] [wrap2 2]]}\n [\"/ping\" {:get {:middleware [[wrap3 3]]\n :handler handler}}]])))\n\nAll the middleware are applied correctly:\n(app {:request-method :get, :uri \"/api/ping\"})\n; {:status 200, :body [1 2 3 :handler]}\n\nCompiling middleware\nMiddleware can be optimized against an endpoint using middleware compilation.\nTransforming the middleware chain\nThere is an extra option in ring-router (actually, in the undelaying middleware-router): :reitit.middleware/transform to transform the middleware chain per endpoint. It sees the vector of compiled middleware and should return a new vector of middleware.\nAdding debug middleware between all other middleware\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [[wrap 1] [wrap2 2]]}\n [\"/ping\" {:get {:middleware [[wrap3 3]]\n :handler handler}}]]\n {::middleware/transform #(interleave % (repeat [wrap :debug]))})))\n\n(app {:request-method :get, :uri \"/api/ping\"})\n; {:status 200, :body [1 :debug 2 :debug 3 :debug :handler]}\nReversing the middleware chain\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [[wrap 1] [wrap2 2]]}\n [\"/ping\" {:get {:middleware [[wrap3 3]]\n :handler handler}}]]\n {::middleware/transform reverse)})))\n\n(app {:request-method :get, :uri \"/api/ping\"})\n; {:status 200, :body [3 2 1 :handler]}\nRoadmap for middleware\nSome things bubblin' under:\n\nRe-package all useful middleware into (optimized) data-driven Middleware\njust package or a new community-repo with rehosting stuffm?\n\n\nSupport Keyword expansion into Middleware, enabling external Middleware Registries (duct/integrant/macchiato -style)\nSupport Middleware dependency resolution with new keys :requires and :provides. Values are set of top-level keys of the request. e.g.\nInjectUserIntoRequestMiddleware requires #{:session} and provides #{:user}\nAuthorizationMiddleware requires #{:user}\n\n\n\nIdeas welcome & see issues for details.\n"},"ring/coercion.html":{"url":"ring/coercion.html","title":"Pluggable Coercion","keywords":"","body":"Pluggable Coercion\nBasic coercion is explained in detail in the Coercion Guide. With Ring, both request parameters (:query, :body, :form, :header and :path) and response :body can be coerced.\nTo enable coercion, the following things need to be done:\n\nDefine a reitit.coercion/Coercion for the routes\nDefine types for the parameters and/or responses\nMount Coercion Middleware to apply to coercion\nUse the coerced parameters in a handler/middleware\n\nDefine coercion\nreitit.coercion/Coercion is a protocol defining how types are defined, coerced and inventoried.\nReitit ships with the following coercion modules:\n\nreitit.coercion.schema/coercion for plumatic schema\nreitit.coercion.spec/coercion for both clojure.spec and data-specs\n\nCoercion can be attached to route data under :coercion key. There can be multiple Coercion implementations within a single router, normal scoping rules apply.\nDefining parameters and responses\nBelow is a ring route data defining Plumatic Schema coercion. It defines schemas for :query, :body and :path parameters and for a successful response :body.\nThe coerced parameters can be read under :parameters key in the request.\n(require '[reitit.coercion.schema])\n(require '[schema.core :as s])\n\n(def plus-endpoint\n {:coercion reitit.coercion.schema/coercion\n :parameters {:query {:x s/Int}\n :body {:y s/Int}\n :path {:z s/Int}}\n :responses {200 {:schema {:total PositiveInt}}}\n :handler (fn [{:keys [parameters]}]\n (let [total (+ (-> parameters :query :x)\n (-> parameters :body :y)\n (-> parameters :path :z))]\n {:status 200\n :body {:total total}}))})\n\nCoercion Middleware\nDefining a coercion for a route data doesn't do anything, as it's just data. We have to attach some code to apply the actual coercion. We can use the middleware from reitit.ring.coercion:\n\ncoerce-request-middleware for the parameter coercion\ncoerce-response-middleware for the response coercion\ncoerce-exceptions-middleware to turn coercion exceptions into pretty responses\n\nFull example\nHere's an full example for applying coercion with Reitit, Ring and Schema:\n(require '[reitit.ring.coercion :as rrc])\n(require '[reitit.coercion.schema])\n(require '[reitit.ring :as ring])\n(require '[schema.core :as s])\n\n(def PositiveInt (s/constrained s/Int pos? 'PositiveInt))\n\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\"\n [\"/ping\" {:name ::ping\n :get (fn [_]\n {:status 200\n :body \"pong\"})}]\n [\"/plus/:z\" {:name ::plus\n :post {:coercion reitit.coercion.schema/coercion\n :parameters {:query {:x s/Int}\n :body {:y s/Int}\n :path {:z s/Int}}\n :responses {200 {:schema {:total PositiveInt}}}\n :handler (fn [{:keys [parameters]}]\n (let [total (+ (-> parameters :query :x)\n (-> parameters :body :y)\n (-> parameters :path :z))]\n {:status 200\n :body {:total total}}))}}]]\n {:data {:middleware [rrc/coerce-exceptions-middleware\n rrc/coerce-request-middleware\n rrc/coerce-response-middleware]}})))\n\nValid request:\n(app {:request-method :post\n :uri \"/api/plus/3\"\n :query-params {\"x\" \"1\"}\n :body-params {:y 2}})\n; {:status 200, :body {:total 6}}\n\nInvalid request:\n(app {:request-method :post\n :uri \"/api/plus/3\"\n :query-params {\"x\" \"abba\"}\n :body-params {:y 2}})\n; {:status 400,\n; :body {:schema {:x \"Int\", \"Any\" \"Any\"},\n; :errors {:x \"(not (integer? \\\"abba\\\"))\"},\n; :type :reitit.coercion/request-coercion,\n; :coercion :schema,\n; :value {:x \"abba\"},\n; :in [:request :query-params]}}\n\nInvalid response:\n(app {:request-method :post\n :uri \"/api/plus/3\"\n :query-params {\"x\" \"1\"}\n :body-params {:y -10}})\n; {:status 500,\n; :body {:schema {:total \"(constrained Int PositiveInt)\"},\n; :errors {:total \"(not (PositiveInt -6))\"},\n; :type :reitit.coercion/response-coercion,\n; :coercion :schema,\n; :value {:total -6},\n; :in [:response :body]}}\n\nOptimizations\nThe coercion middleware are compiled againts a route. In the compile step the actual coercer implementations are compiled for the defined models. Also, the mw doesn't mount itself if a route doesn't have :coercion and :parameters or :responses defined.\nWe can query the compiled middleware chain for the routes:\n(require '[reitit.core :as r])\n\n(-> (ring/get-router app)\n (r/match-by-name ::plus)\n :result :post :middleware\n (->> (mapv :name)))\n; [::mw/coerce-exceptions\n; ::mw/coerce-request\n; ::mw/coerce-response]\n\nRoute without coercion defined:\n(app {:request-method :get, :uri \"/api/ping\"})\n; {:status 200, :body \"pong\"}\n\nHas no mounted middleware:\n(-> (ring/get-router app)\n (r/match-by-name ::ping)\n :result :get :middleware\n (->> (mapv :name)))\n; []\n\nThanks to\n\ncompojure-api for the initial Coercion protocol\nring-swagger for the :parameters and :responses syntax.\nschema and schema-tools for Schema Coercion\nspec-tools for Spec Coercion\n\n"},"ring/route_data_validation.html":{"url":"ring/route_data_validation.html","title":"Route Data Validation","keywords":"","body":"Route Data Validation\nRing route validation works just like with core router, with few differences:\n\nreitit.ring.spec/validate-spec! should be used instead of reitit.spec/validate-spec! - to support validating all endpoints (:get, :post etc.)\nWith clojure.spec validation, Middleware can contribute to route spec via :specs key. The effective route data spec is router spec merged with middleware specs.\n\nExample\nLet's build a ring app with with both explicit (via middleware) and implicit (fully-qualified keys) spec validation.\nA simple app with spec-validation turned on:\n(require '[clojure.spec.alpha :as s])\n(require '[reitit.ring :as ring])\n(require '[reitit.ring.spec :as rrs])\n(require '[reitit.spec :as rs])\n(require '[expound.alpha :as e])\n\n(defn handler [_]\n {:status 200, :body \"ok\"})\n\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\"\n [\"/public\"\n [\"/ping\" {:get handler}]]\n [\"/internal\"\n [\"/users\" {:get {:handler handler}\n :delete {:handler handler}}]]]\n {:validate rrs/validate-spec!\n ::rs/explain e/expound-str})))\n\nAll good:\n(app {:request-method :get\n :uri \"/api/internal/users\"})\n; {:status 200, :body \"ok\"}\n\nExplicit specs via middleware\nMiddleware that requires :zone to be present in route data:\n(s/def ::zone #{:public :internal})\n\n(def zone-middleware\n {:name ::zone-middleware\n :spec (s/keys :req-un [::zone])\n :wrap (fn [handler]\n (fn [request]\n (let [zone (-> request (ring/get-match) :data :zone)]\n (println zone)\n (handler request))))})\n\nMissing route data fails fast at router creation:\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [zone-middleware]} ;; \nAdding the :zone to route data fixes the problem:\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [zone-middleware]}\n [\"/public\" {:zone :public} ;; {:status 200, :body \"ok\"}\n\nImplicit specs\nBy design, clojure.spec validates all fully-qualified keys with s/keys specs even if they are not defined in that keyset. Validation in implicit but powerful.\nLet's reuse the wrap-enforce-roles from Dynamic extensions and define specs for the data:\n(require '[clojure.set :as set])\n\n(s/def ::role #{:admin :manager})\n(s/def ::roles (s/coll-of ::role :into #{}))\n\n(defn wrap-enforce-roles [handler]\n (fn [{:keys [::roles] :as request}]\n (let [required (some-> request (ring/get-match) :data ::roles)]\n (if (and (seq required) (not (set/subset? required roles)))\n {:status 403, :body \"forbidden\"}\n (handler request)))))\n\nwrap-enforce-roles silently ignores if the ::roles is not present:\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [zone-middleware\n wrap-enforce-roles]} ;; {:status 200, :body \"ok\"}\n\nBut fails if they are present and invalid:\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [zone-middleware\n wrap-enforce-roles]}\n [\"/public\" {:zone :public}\n [\"/ping\" {:get handler}]]\n [\"/internal\" {:zone :internal}\n [\"/users\" {:get {:handler handler\n ::roles #{:manager} ;; \nPushing the data to the endpoints\nAbility to define (and reuse) route-data in sub-paths is a powerful feature, but having data scattered all around might be harder to reason about. There is always an option to push all data to the endpoints.\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\"\n [\"/public\"\n [\"/ping\" {:zone :public\n :get handler\n :middleware [zone-middleware\n wrap-enforce-roles]}]]\n [\"/internal\"\n [\"/users\" {:zone :internal\n :middleware [zone-middleware\n wrap-enforce-roles]\n :get {:handler handler\n ::roles #{:manager}}\n :delete {:handler handler\n ::roles #{:admin}}}]]]\n {:validate rrs/validate-spec!\n ::rs/explain e/expound-str})))\n\nOr even flatten the routes:\n(def app\n (ring/ring-handler\n (ring/router\n [[\"/api/public/ping\" {:zone :public\n :get handler\n :middleware [zone-middleware\n wrap-enforce-roles]}]\n [\"/api/internal/users\" {:zone :internal\n :middleware [zone-middleware\n wrap-enforce-roles]\n :get {:handler handler\n ::roles #{:manager}}\n :delete {:handler handler\n ::roles #{:admin}}}]]\n {:validate rrs/validate-spec!\n ::rs/explain e/expound-str})))\n\nThe common Middleware can also be pushed to the router, here cleanly separing behavior and data:\n(def app\n (ring/ring-handler\n (ring/router\n [[\"/api/public/ping\" {:zone :public\n :get handler}]\n [\"/api/internal/users\" {:zone :internal\n :get {:handler handler\n ::roles #{:manager}}\n :delete {:handler handler\n ::roles #{:admin}}}]]\n {:data {:middleware [zone-middleware wrap-enforce-roles]}\n :validate rrs/validate-spec!\n ::rs/explain e/expound-str})))\n\n"},"ring/compiling_middleware.html":{"url":"ring/compiling_middleware.html","title":"Compiling Middleware","keywords":"","body":"Compiling Middleware\nThe dynamic extensions is a easy way to extend the system. To enable fast lookups into route data, we can compile them into any shape (records, functions etc.) we want, enabling fast access at request-time.\nBut, we can do much better. As we know the exact route that middleware/interceptor is linked to, we can pass the (compiled) route information into the middleware/interceptor at creation-time. It can do local reasoning: extract and transform relevant data just for it and pass it into the actual request-handler via a closure - yielding much faster runtime processing. It can also decide not to mount itself by returning nil. Why mount a wrap-enforce-roles middleware for a route if there are no roles required for it?\nTo enable this we use middleware records :compile key instead of the normal :wrap. :compile expects a function of route-data router-opts => ?wrap.\nTo demonstrate the two approaches, below are response coercion middleware written as normal ring middleware function and as middleware record with :compile.\nNormal Middleware\n\nReads the compiled route information on every request.\n\n(defn wrap-coerce-response\n \"Middleware for pluggable response coercion.\n Expects a :coercion of type `reitit.coercion/Coercion`\n and :responses from route data, otherwise will do nothing.\"\n [handler]\n (fn\n ([request]\n (let [response (handler request)\n method (:request-method request)\n match (ring/get-match request)\n responses (-> match :result method :data :responses)\n coercion (-> match :data :coercion)\n opts (-> match :data :opts)]\n (if (and coercion responses)\n (let [coercers (response-coercers coercion responses opts)]\n (coerce-response coercers request response))\n response)))\n ([request respond raise]\n (let [method (:request-method request)\n match (ring/get-match request)\n responses (-> match :result method :data :responses)\n coercion (-> match :data :coercion)\n opts (-> match :data :opts)]\n (if (and coercion responses)\n (let [coercers (response-coercers coercion responses opts)]\n (handler request #(respond (coerce-response coercers request %))))\n (handler request respond raise))))))\n\nCompiled Middleware\n\nRoute information is provided via a closure\nPre-compiled coercers\nMounts only if :coercion and :responses are defined for the route\nAlso defines spec for the route data :responses for the route data validation.\n\n(require '[reitit.spec :as rs])\n\n(def coerce-response-middleware\n \"Middleware for pluggable response coercion.\n Expects a :coercion of type `reitit.coercion/Coercion`\n and :responses from route data, otherwise does not mount.\"\n {:name ::coerce-response\n :spec ::rs/responses\n :compile (fn [{:keys [coercion responses]} opts]\n (if (and coercion responses)\n (let [coercers (coercion/response-coercers coercion responses opts)]\n (fn [handler]\n (fn\n ([request]\n (coercion/coerce-response coercers request (handler request)))\n ([request respond raise]\n (handler request #(respond (coercion/coerce-response coercers request %)) raise)))))))})\n\nThe latter has 50% less code, is easier to reason about and is much faster.\n"},"performance.html":{"url":"performance.html","title":"Performance","keywords":"","body":"Performance\nThere are many great routing libraries for Clojure(Script), but not many are optimized for perf. Reitit tries to be both great in features and be really fast. Originally the routing was adopted from Pedestal (which is known to be fast), but has been partially rewritten performance in mind. Hopefully some optimizations can be back-ported to Pedestal.\nRationale\n\nMultiple routing algorithms, choose based on the route tree\nRoute flattening and re-ordering\nManaged mutability over Immutability\nPrecompute/compile as much as possible (matches, middleware, routes)\nUse abstractions that enable JVM optimizations\nUse small functions to enable JVM Inlining\nProtocols over Multimethods (or Maps)\nRecords over Maps\nAlways be measuring\nDon't trust the (micro-)benchmarks\n\nDoes routing performance matter?\nWell, it depends. With small route trees, it might not. But, with large (real-life) route trees, difference between the fastest and the slowest tested libs can be two or three orders of magnitude. For busy sites it actually matters if you routing request takes 100 ns or 100 µs. A lot.\nTests\nAll perf tests are found in the repo and have been run with the following setup:\n;;\n;; start repl with `lein perf repl`\n;; perf measured with the following setup:\n;;\n;; Model Name: MacBook Pro\n;; Model Identifier: MacBookPro11,3\n;; Processor Name: Intel Core i7\n;; Processor Speed: 2,5 GHz\n;; Number of Processors: 1\n;; Total Number of Cores: 4\n;; L2 Cache (per Core): 256 KB\n;; L3 Cache: 6 MB\n;; Memory: 16 GB\n;;\nNOTE: Tests are not scientific proof and may contain errors. You should always run the perf tests with your own (real-life) routing tables to get more accurate results for your use case. Also, if you have idea how to test things better, please let us know.\nSimple Example\nThe routing sample taken from bide README:\n(require '[reitit.core :as r])\n(require '[criterium.core :as cc])\n\n(def routes\n (r/router\n [[\"/auth/login\" :auth/login]\n [\"/auth/recovery/token/:token\" :auth/recovery]\n [\"/workspace/:project/:page\" :workspace/page]]))\n\n;; Execution time mean (per 1000) : 3.2 µs -> 312M ops/sec\n(cc/quick-bench\n (dotimes [_ 1000]\n (r/match-by-path routes \"/auth/login\")))\n\n;; Execution time mean (per 1000): 530 µs -> 1.9M ops/sec\n(cc/quick-bench\n (dotimes [_ 1000]\n (r/match-by-path routes \"/workspace/1/1\")))\n\nBased on the perf tests, the first (static path) lookup is 300-500x faster and the second (wildcard path) lookup is 4-24x faster that the other tested routing libs (Ataraxy, Bidi, Compojure and Pedestal).\nBut, the example is too simple for any real benchmark. Also, some of the libraries always match on the :request-method too and by doing so, do more work than just match by path. Compojure does most work also by invoking the handler.\nSo, we need to test something more realistic.\nRESTful apis\nTo get better view on the real life routing performance, there is test of a mid-size rest(ish) http api with 50+ routes, having a lot of path parameters. The route definitions are pulled off from the OpenSensors swagger definitions.\nThanks to the snappy segment-tree algorithm, reitit-ring is fastest here. Pedestal is also fast with it's prefix-tree implementation.\n\nCQRS apis\nAnother real-life test scenario is a CQRS-style route tree, where all the paths are static, e.g. /api/command/add-order. The route definitions are pulled out from Lupapiste. The test consists of ~300 static routes (just the commands here, there would be ~200 queries too).\nAgain, both reitit-ring and Pedestal shine here, thanks to the fast lookup-routers. On average, they are two and on best case, three orders of magnitude faster than the other tested libs. Ataraxy failed this test on Method code too large! error.\n\nNOTE: If there would be even one wildcard route in the route-tree, Pedestal would fallback from lookup-router to the prefix-tree router, yielding nearly constant, but an order of magnitude slower perf. Reitit instead fallbacks to :mixed-router, serving all the static routes with :lookup-router, just the wildcard route(s) with :segment-tree. So, the performance would not notably degrade.\nWhy measure?\nThe routing perf needs to be measured to get an internal baseline to optimize against. We also want to ensure that new features don't regress the performance. Perf tests should be run in a stable CI environment. Help welcome.\nLooking out of the box\nIt might be interesting to compare reitit with the routers in other languages, like the routers in Go.\nPerformance tips\nFew things that have an effect on performance:\n\nWildcard-routes are an order of magnitude slower than static routes\nIt's ok to mix non-wildcard and wildcard routes in a same routing tree as long as you don't disable the conflict resolution => if no conflicting routes are found, a :mixed-router can be created, which internally has a fast static path router and a separate wildcard-router. So, the static paths are still fast.\nMove computation from request processing time into creation time, using by compiling middleware & route data.\nUnmounted middleware (or interceptor) is infinitely faster than a mounted one effectively doing nothing.\n\n\n\n"},"faq.html":{"url":"faq.html","title":"FAQ","keywords":"","body":"Frequently Asked Questions\nWhy yet another routing library?\nThere are many great routing libs for Clojure, but we felt that none was perfect. We picked\nbest parts of existing libs, added things that were missing (like first-class route data, spec-coercion and full route conflict resolution) trying to make a library it both both fun to use and really, really fast.\n"}}}
\ No newline at end of file
+{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["\"/api/admin/users\"})","\"/api/ipa\")","\"/api/orders/1\")","\"/api/orders/1\"}","\"/api/orders/2\"}","\"/api/orders/:id\"","\"/api/orders/:id\",","\"/api/ping\"","\"/api/ping\")","\"/api/ping\"}","\"0.1.0","\"1\"}","\"ok\",","\"ok\"})","#match{:templ","#methods{...}","#object[user$handler]}","#partialmatch{:templ","#reitit","#{:id}}","&","'())","'[reitit.cor","'[reitit.r","(","(:api","(app","(clojure.spec),","(def","(defn","(fn","(fnil","(handler","(r/match","(r/partial","(r/router","(requir","(ring/get","(ring/r","(ring/rout","(schema","(updat","(wip)","200,","2})","2},","::ipa)","::order","::ping)","::ping))","::ping]","::ping}","::ping}]",":a",":admin]]}",":admin}",":api]]",":api]]}",":bodi",":data",":get",":get,",":handler",":middlewar",":name",":path",":post",":put,",":request",":requir",":result",":uri",":user/ord",":wrap",";",">","[\"/admin\"","[\"/api\"","[\"/api/orders/:id\"","[\"/ping\"","[\"/users\"","[[\"/api/ping\"","[[#object[user$wrap]","[[wrap","[_]","[handler","[metosin/reitit","[request]","add","app","avail","base","bi","channel","class","clj","clojure(script)","clojure.spec)","clojurian","coercion","compilation,","conflict","conj","control","core","data","dependeci","direct","discussions,","driven","dynam","exampl","extend","extens","fast","first","follow","functions,","handler","handler}]]])))","higher","http","id","id)","id))","id)))","id]","id]]))","id}","id},","interceptor","introduct","keechma","level","librari","match?","method","method.","middlewar","middleware,","modular","modules:","more.","name","nil","nil,","optionally,","param","paramet","part","path","pedest","pluggabl","project:","r])","reitit","reitit,","request)","requir","resolut","revers","ring","ring])","rout","router","router)","routing.","routing:","schema","separ","separately:","simpl","slack.","small","snapshot\"]","spec","style","support","syntax","true","us","wrap","{:get","{:handler","{:id","{:middlewar","{:name","{:request","{:statu","{}"],"basics/":["base","basic","conflict","data","name","path","rout","router","syntax","valid"],"basics/route_syntax.html":["\"/\"","'add","'get","(*path).","(:id)","([\"/get","(condp","(cqr","(defn","(for","(if","(name","(non","(str","::admin]","::admin}]","::db]]","::db]}","::db}]","::dev","::ping]","::ping]]","::ping}]]","::pong}]]",":command",":get",":let",":name",":post)]]",":queri",";","=","[\"\"","[\"/add","[\"/admin\"","[\"/api\"","[\"/api/:version/ping\"]]","[\"/api/admin/db\"","[\"/api/ping\"","[\"/db\"","[\"/dev","[\"/ping\"","[\"/ping\"]","[\"/pong\"","[\"/pong\"]]","[\"/public/*path\"]","[::admin],","[::admin]}","[::api","[:command","[[\"/api/admin\"","[[\"/ping\"","[[\"/ping\"]","[[\"/users/:us","[[:queri","[[type","[action","[add","[get","[interceptor]}}])","[path","action","argument","arguments:","catch","child","cqr","creat","data,","defin","dev","easi","exampl","false)","flattened:","gener","id\"]","ignored.","interceptor))","interceptor]","it'","list","method","mode?","mode?]","nest","nil","nil]","option","order\"","order]]","order]}}])","paramet","parameter:","parameters:","path","programmatically:","rout","route:","routes.","routes:","same","sequential)","simpl","string","syntax","tools\"","tools])])","two","type","user\"","user]","user]}}]","vector","wrap","{:get","{:interceptor","{:middlewar","{:name","{:post","{method"],"basics/router.html":["'[reitit.cor","(def","(defprotocol","(match","(option","(r/rout","(r/router","(requir","(rout","(router","(via","::ping]","::user]]]))",":a",":mix",":user/ping}]",":user/user}]]",";","[\"/api/user/:id\"","[\"/ping\"","[\"/user/:id\"","[[\"/api\"","[[\"/api/ping\"","[thi","[this])","actual","argument","behind","coerc","compil","conflict","creat","created,","data","done:","expand","flatten","follow","function,","get","implement","instanc","map.","name","name]","need","option","params]))","path","path])","protocol)","protocol.","protocol:","r])","raw","reitit.core/expand","reitit.core/rout","resolv","rout","router","router)","router:","routing,","satisfi","scene","select","step","take","tree","tree:","{:name"],"basics/path_based_routing.html":["\"/api/user/1\"","\"/api/user/1\")","\"/api/user/:id\"","\"/hello\")","\"1\"}}","#match{:templ","'[reitit.cor","(def","(onli","(r/match","(r/router","(requir","::ping]","::user]]]))",":a",":data",":path",":result",":user/user}",";","[\"/ping\"","[\"/user/:id\"","[[\"/api\"","argument","base","done","exact","following:","function.","given","information:","match","match,","matched,","miss","nil","nil,","nil:","on","param","paramet","partialmatch,","path","provid","r])","reitit.core/match","return","revers","rout","router","router:","routing)","take","us","{:id","{:name"],"basics/name_based_routing.html":["\"/api/ping\"","\"/api/ping\"}","\"/api/user/1\"","\"/api/user/:id\"","\"/api/user/:id\",","\"1\"})","\"1\"}}","#match{:templ","#partialmatch{:templ","#{:id}","#{:id}}","'[reitit.cor","(def","(r/match","(r/partial","(r/rout","(r/router","(requir","(reverse)","/api/user/:id:","::kikka)","::ping)","::ping]","::user","::user)","::user))","::user]]]))",":a",":data",":name",":path",":requir",":result",":user/ping}",":user/user]",":user/user}",":user/user},",";","[\"/ping\"","[\"/user/:id\"","[:user/p","[[\"/api\"","base","data","defined,","except","exceptioninfo","given","list","match","match?","miss","name","name!","name.","names:","nil","nil,","nil:","param","paramet","parameters:","partialmatch","path","provid","r])","return","returned:","rout","route:","router","router)","router:","set,","throw","true","version:","{:id","{:name","{}"],"basics/route_data.html":["\"/ping\"","\"/ping\")","\"/ping\"}","#match{:templ","#{:admin}","#{:admin}}","#{:db","'[reitit.cor","(def","(r/match","(r/rout","(r/router","(requir","::db]","::ping)","::ping]","::users]","::users}",":a",":append,",":coerc",":compil",":data",":displac",":handler",":name",":path",":prepend,",":replac",":result",":role",":user/ping}",":user/ping}]",";","[\"/admin\"","[\"/api\"","[\"/api/admin/db\"","[\"/api/admin/users\"","[\"/db\"","[\"/ping\"","[\"/pong\"","[\"/users\"","[::api","[::api]","[::api]}","[::db]","[[\"/api/ping\"","[[\"/ping\"","^:replac","accumul","adapt","add","admin}}]]","admin}}]]]))","applic","argument","arguments.","attacht","behavior","both","case","cheng","client","clojure.spec","co","colect","components.","created.","custom","data","data.","data:","default","default,","easi","enabl","exampl","exist","expand","expans","function","heart","hooks.","identity]","identity]}","identity}}]]","identity}}]]))","implement","interpet","it'","key","keyword","leaf","library.","map","map.","match","match.","merge.","meta","name","nest","nil","nil]","non","on","options.","overridden","param","path","principl","protocol","r])","recurs","reitit/expand","resolv","retriev","return","root","rout","router","router)","sequenti","target","them.","togeth","toward","tree:","trees,","us","valid","via","whole","{:get","{:handler","{:interceptor","{:name","{:role","{}"],"basics/route_data_validation.html":["\"/api\"","\"/api\",","\"clojure.core$identity@15b59b0e\"],","\"clojure.core$identity@15b59b0e\"]}","\"clojure.core$identity@15b59b0e\"]},","\"clojure.core$identity@15b59b0e\"]}}})},","\"clojure.spec.alpha$merge_spec_impl$reify__2124@7461744b\"],","\"identity\"","\"identity\",","\"identity\"},","\"identity\"}]","\"identity\"}])","\"identity\"}}})},","#:clojure.spec.alpha{:problem","#object[clojure.core$ident","#object[clojure.spec.alpha$merge_spec_impl$reify__2124","#object[reitit.core$...]","#{:admin","#{:adminz}}","#{:adminz}},","#{:adminz}}]","#{:adminz}}}})},","#{})","#{}))","%","'[clojure.spec.alpha","'[expound.alpha","'[reitit.cor","'[reitit.spec","(#reitit.spec.problem{:path","()","(clojure.core/contains?","(clojure.core/fn","(clojure.spec.alpha/col","(clojure.spec.alpha/key","(coll","(default","(r/router","(requir","(s/coll","(s/def","(s/key","(s/merg","({:path","+","...","...,","0]}),","0x15b59b0e","0x7461744b","1","2","::role","::rs/default","::rs/explain",":a",":adminz,",":coerc",":compil",":data",":in",":into",":manager}",":manager})",":manager},",":opt",":pred",":problem",":reitit.spec/default",":reitit.spec/handl",":reitit.spec/handler])",":reitit.spec/handler],",":req",":role",":scope",":spec",":user/rol",":user/role:",":user/role],",":user/roles)),",":user/roles:",":val",":valid",":valu",":via",";","=>","[\"/api\"","[%]","[::roles])","[:handler]","[:handler],","[:handler]}),","[:reitit.spec/default","[:reitit.spec/nam","[:user/rol","[:user/roles],","[],","[]}),","^^^^^^^","`:admin`,`:manager`","`:user/roles`","accident","anything,","app","appli","ariti","at:","author","below","better","case","clojure.core/fn?,","clojure.lang.exceptioninfo:","clojure.spec","clojure.spec.alpha/explain","compiled.","compilerexcept","compiling:","compiling:(/users/tommi/projects/metosin/reitit/test/cljc/reitit/spec_test.cljc:151:1)","contain","custom","data","data)","data,","data:","descript","detect","e/expound","e])","easi","effect","error","errors.","exampl","except","exist","expect","explain","explicitli","expound","fail","fast","fast,","first","fn?","follow","found.","fulli","function","helper","hook","ident","identity}]","implicitli","in:","instead","invalid","it'","key","key:","main","mistakes.","name.","namespac","nil,","note:","of:","on","on:","opt","options:","part","place.","predicate:","pretti","print","problem.","problems.","qualifi","r])","read","reitit.cor","reitit.spec","relev","render","requir","rout","router","rs/valid","rs])","run","s])","same","side","sight","spec","spec!","spec!})","spec:","str","str)","successfuli","throw","tree","turn","un","us","val:","valid","valu","verifi","way.","whole","without","{::rs/explain","{:handler","{:problem","{:spec","{:valid","|"],"basics/route_conflicts.html":["'[reitit.cor","(comp","(def","(r/router","(requir","/:user","/:version/statu","/bulk/:bulk","/public/*path",":a",":conflict",";",">","[\"/:user","[\"/:version/status\"]])","[\"/bulk/:bulk","[\"/public/*path\"]","[[\"/ping\"]","allow","callback.","clojure.lang.exceptioninfo:","compilerexcept","conflicit","conflict","conflicts:","contain","created.","default","default,","descript","effec","especi","ex","exampl","exceptioninfo","explicit","first","good,","id","id\"]","id/ord","id/orders\"]","implement","info","librari","log","lookup,","make","match","merg","message.","multipl","pass","path","println","r])","reitit","reitit/conflict","resolut","resolv","rest","rout","router","router.","routes)","routes:","run","sources.","str)})","throw","thrown:","tree","unreachable.","us","within","{:conflict"],"coercion/":["clojure.spec","coercion","data","explain","plumat","schema","spec"],"coercion/coercion.html":["\"/:company/users/:us","\"/metosin/users/123\")","\"/metosin/users/123\"))","\"/metosin/users/123\"}","\"/metosin/users/ikitommi\")","\"/metosin/users/ikitommi\"))","\"123\"},","\"ikitommi\"))}}","\"metosin\",","#coercionerror{:schema","#match{:templ","#object[reitit.coercion$request_coercer$]},","'[reitit.coercion","'[reitit.coercion.schema])","'[reitit.cor","'[schema.cor","(:reitit.coercion/request","(and","(assoc","(coercion/coerce!","(core.clj:4739)","(def","(defn","(done","(if","(integer?","(match","(not","(r/match","(r/router","(requir","(with","123}}","::user",":a",":body,",":coercion",":data",":error",":form,",":header",":param",":paramet",":parameters.",":path",":path.",":query,",":result",":user",":user/us",";","=>",">","[\"/:company/users/:us","[match","[path]","actual","ad","again:","against","another.","any},","api","appli","applied.","apply.","attach","back.","base","befor","better","blown","both","catch","clojure.core/ex","clojure.spec","coerc","coerce!","coercer","coercers.","coercers}))","coercion","coercion)","coercion,","coercion.","coercion/compil","coercion])","compil","compojur","creation","data","data.","default,","defin","defined).","defined,","depend","differ","do","done","done.","done:","effect","enabl","enough","error:","exampl","exceptioninfo","explain","explicit","failed...","failed:","fails,","follow","format","full","function","haven't","helper","here'","hold","http","id","id\"","id\",","implement","implementation.","info","initi","int,","interceptor","int}}},","inventoried.","java.lang.string,","key","key.","level,","magical.","make","manual","match","match))))","match:","middleware,","modules:","much","multipl","need","nil,","non","normal","now","on","once,","ourselv","param","paramet","parameters:","paremet","pars","path","path)]","perform","plumat","process","protocol","r","r])","reitit","reitit,","reitit.coercion.schema/coercion","reitit.coercion.spec/coercion","reitit.coercion/coerce!","reitit.coercion/coercion","reitit.coercion/compil","request","responses)","ring","rout","router","router,","router.","routing.","rule","s/int}}}]","s/int}}}]))","s/str","s])","schema","schema:","scope","see","separ","ship","singl","spec","step","steps.","strings:","successful","syntax","thank","thing","this:","thrown,","time),","tool","transform","two","type","under","us","via","view","view,","view]))","view},","why?","wildcard","within","yet.","yield","{:compani","{:compil","{:name","{:path","{:user"],"coercion/schema_coercion.html":["\"/:company/users/:us","\"/metosin/users/123\")","\"/metosin/users/123\"}","\"/metosin/users/ikitommi\")","\"123\"},","\"metosin\",","#match{:templ","#object[reitit.coercion$request_coercer$]},","'[reitit.coercion","'[reitit.coercion.schema])","'[reitit.cor","'[schema.cor","(assoc","(coercion/coerce!","(def","(defn","(if","(match","(r/match","(r/router","(requir","123}}","::user",":a",":coercion",":data",":paramet",":path",":result",":user",":user/us",";","=>",">","[\"/:company/users/:us","[match","[path]","clojure(script)","coerce!","coercers}))","coercion","coercion/compil","coercion:","coercion])","data","declar","descript","exceptioninfo","fail","failed...","id","id\"","id\",","int}}},","java.lang.string,","librari","match","match))))","param","path","path)]","plumat","r])","reitit.coercion.schema/coercion","request","router","s/int}}}]","s/str","s])","schema","success","validation.","view","view,","{:compani","{:compil","{:name","{:path"],"coercion/clojure_spec_coercion.html":["\"/:company/users/:us","\"/metosin/users/123\")","\"/metosin/users/123\"}","\"/metosin/users/ikitommi\")","\"123\"},","\"metosin\",","#match{:templ","#object[reitit.coercion$request_coercer$]},","'[clojure.spec.alpha","'[reitit.coercion","'[reitit.coercion.spec])","'[reitit.cor","'[spec","(assoc","(coercion/coerce!","(def","(defn","(if","(match","(r/match","(r/router","(requir","(s/def","(s/key","123}}","::compani","::path","::user",":a",":coercion",":data",":paramet",":path",":req",":result",":user",":user/us",";",";;","=>",">","[\"/:company/users/:us","[::compani","[match","[path]","base","clojure.spec","coerce!","coercers}))","coercion","coercion/compil","coercion:","coercion])","conforming,","currently,","data","data,","destructur","doesn't","exceptioninfo","fail","failed...","gener","id","id\"","id\",","id]))","it,","librari","match","match))))","need","note:","on","param","params}},","params}}]","path","path)]","primitives!","r])","record","reitit.coercion.spec/coercion","request","router","runtim","s])","spec","spec.","spec/int?)","spec/string?)","spec])","specifi","structur","success","support","tools.spec","transform","un","valid","via","view","view,","working.","wrap","{:compani","{:compil","{:name","{:path"],"coercion/data_spec_coercion.html":["\"/:company/users/:us","\"/metosin/users/123\")","\"/metosin/users/123\"}","\"/metosin/users/ikitommi\")","\"123\"},","\"metosin\",","#match{:templ","#object[reitit.coercion$request_coercer$]},","'[reitit.coercion","'[reitit.coercion.spec])","'[reitit.cor","(assoc","(coercion/coerce!","(def","(defn","(if","(match","(r/match","(r/router","(requir","123}}","::user",":a",":coercion",":data",":paramet",":path",":result",":user",":user/us",";","=>",">","[\"/:company/users/:us","[match","[path]","alternative,","bonus,","box.","clojure.specs.","coerce!","coercers}))","coercion","coercion/compil","coercion:","coercion])","conform","data","defin","exceptioninfo","fail","failed...","free","id","id\"","id\",","int?}}},","int?}}}]","macro","match","match))))","out","param","path","path)]","r])","reitit.coercion.spec/coercion","request","router","runtim","spec","string?","string?,","success","support","syntax","transform","via","view","view,","{:compani","{:compil","{:name","{:path"],"advanced/":["advanc","configur","differ","interceptor","rout","router","valid"],"advanced/configuring_routers.html":["#{route}}","()","(data)","(default",":coerc",":compil",":conflict",":data",":expand",":path",":rout",":router",":spec",":valid","=>","[])","actual","arg","avail","base","clojure.spec","coerc","compil","configur","conflict","conflicts!)","data","data,","definit","descript","effect","expand","follow","function","handl","handler","implement","initi","key","nil","opt","option","options.","overrid","path","reitit.core/expand)","reitit.core/router:","reitit.core/throw","reitit.spec","resolv","result","return","rout","route,","router","see","side","throw","us","valid","via","{rout","{})"],"advanced/different_routers.html":["'[reitit.cor","(def","(r/router","(requir","::ping]","::users]]))",":a",":linear",":lookup",":mix",":router",":segment",":singl",";","[\"/api/:users\"","[[\"/ping\"","ask","base","catch","configur","conflicts.","creat","descript","differ","expand","fast","faster","found.","function","hash","implement","implementation.","inspect","intern","kind","lookup","manual","match","much","name","on","optim","option,","origin","out","paramet","path","pedest","protocol,","r])","reitit","resolv","rout","route.","router","router)","router,","router:","routers.","routes.","search","see","select","set","sever","ship","slow,","start","static","sting","suitabl","super","table.","top","trees.","trie","until","us","valid","wildcard","work"],"advanced/route_validation.html":["\"/\"))","\"/\")))","\"/\"))))","\"0.4.0\"]","\"tenant1\"","#'reitit.core/rout","%","%)","'[clojure.spec.alpha","'[clojure.spec.test.alpha","'[expound.alpha","'[reitit.cor","'[reitit.spec","'[reitit.spec])","(*","(?","([\"/api\"","([...","(and","(blank?","(cat","(clojure.core/fn","(clojure.core/or","(clojure.spec.alpha/*","(clojure.spec.alpha/?","(clojure.spec.alpha/and","(clojure.spec.alpha/cat","(clojure.spec.alpha/col","(clojure.spec.alpha/nil","(clojure.spec.alpha/or","(clojure.string/blank?","(clojure.string/start","(def","(fn","(nilabl","(or","(r/router","(requir","(s/explain","(s/valid?","(set!","(start","(stest/instru","...","...])","2","::spec/raw","::tenant1])",":a",":arg",":child",":clojure.spec.alpha/spec",":clojure.spec.alpha/valu",":dev",":into",":path",":path]",":reitit.spec/arg)",":reitit.spec/path",":reitit.spec/path:",":reitit.spec/raw",":rout",":user/tenant1",":user/tenant1]",";","[\"/api\"","[\"/ping\"]","[\"/public\"","[\"pong\"]]])","[\"tenant1\"","[%]","[...","[0]","[1]","[:rout","[:routes]","[]))","[expound","^^^^^^","`reitit/router)","add","argument","at:","bootstrapping:","call","clojure.core/string?","clojure.lang.exceptioninfo:","clojure.spec","compilerexcept","conform","contain","db","db)","definit","depend","detect","develop","error","exampl","expound","expound/printer)","expound])","fail","fals","first","function","go:","higher","in:","instrument","namespac","options.","out*","predicate:","pretti","print","problems.","r])","raw","readi","reitit.core/rout","reitit.spec","relev","rout","route))))","route:","router","routes,","routes:","s/*explain","s])","satisfi","spec","spec:","spec])","stest])","time","to:","tool","us","val:","valid","with?"],"advanced/interceptors.html":["(coericon)","clojure(script)","doc","interceptor","interceptors.","middlewar","pedest","port","progress","reitit","runner?","sampl","separ","style","support","work"],"ring/":["coercion","compil","data","driven","dynam","extens","middlewar","pluggabl","ring","rout","router","valid"],"ring/ring.html":["\"\"}","\"\"})","\"\"})))","\"/\"})","\"/api/admin/db\"})","\"/api/ping\"})","\"/favicon.ico\"})","\"/invalid\"})","\"/ping\"","\"/ping\"})","\"/pong\"})","\"kosh\"}","\"kosh\"})","\"kosh\"})})))","\"ok\"}","\"ok\"})","#endpoint{:data","#methods{:ani","#object[...],","#object[...]}","#object[...]},","%","&","'[reitit.r","(","(app","(conj","(constantli","(def","(defn","(fn","(fnil","(handler","(no","(reitit/match","(reitit/routes))","(requir","(ring/creat","(ring/get","(ring/r","(ring/rout","(updat","2","200,","3","404,","405,","406,","::acc","::ping","::ping)",":a",":admin",":admin]]}",":api)]}",":bodi",":db",":db]]",":delet",":delete,",":delete]]",":get",":get,",":handler",":handler)})",":handler]}",":head,",":method",":middlewar",":not",":options,",":patch,",":path)",":post",":post,",":put,",":put.",":request",":uri",";",">","?arg","[\"/admin\"","[\"/api\"","[\"/db\"","[\"/ping\"","[\"/pong\"","[#(wrap","[::acc]}]","[:api","[[\"/ping\"","[[wrap","[])","[]}}]]","[_]","[handler","[request]","[{:key","acc","accept","ad","add","allow","app","app:","appli","args.","argument","ariti","async","base","both","built","chain","clojur","clojurescript,","compil","compiler,","conj","correct","correctly:","creat","custom","default","default,","defaults:","defined.","differenti","element","ensur","error","expand","following:","found","found.","function","function.","handl","handler","handler)))","handler:","handler]","handler])","handler])))","handlers,","handler}]","handler}])))","handler}}]]])))","http","id))))","id]","it'","key,","keys:","level","look","match,","matched)","matched),","matches,","method","method.","methods.","middlewar","middleware:","more","name","nest","nil","nil).","nil)]])","node.j","normal","note","optim","optin","provid","reitit.ring/rout","request","respons","responses,","responses:","results:","resut","return","returned,","revers","ring","ring/creat","ring:","ring])","rout","router","router)","routing:","run","second","set","show","simpl","stuctur","submap.","support","third","too.","top","under","us","used.","valid","valu","vector","vector.","work","wrap","{:get","{:handler","{:middlewar","{:name","{:not","{:request","{:statu","{:uri"],"ring/dynamic_extensions.html":["\"/api/admin/ping\",","\"/api/admin/ping\"})","\"/api/ping\"})","\"forbidden\"}","\"ok\"}","\"ok\"}))","#{:admin}}","#{:admin}})","'[clojure.set","(and","(app","(constantli","(def","(defn","(effect","(fn","(handler","(if","(let","(not","(requir","(ring/get","(ring/r","(ring/rout","(seq","(set/subset?","(some","200,","403,","::role","::roles)]",":a",":bodi",":data",":get,",":uri",";",">","[\"/admin\"","[\"/ping\"","[::roles]","[[\"/api\"","[handler]","[requir","[wrap","[{:key","access","ad","anonym","app","author","base","build","data","dynam","enforc","exampl","extens","extract","guard","handler","handler]","handler]]]]","hoc","inject","match","match)","match.","method","middlewar","mount","public","reitit.ring/get","request","request)))))","request}]","requir","required)","ring","role","roles)))","roles:","roles]}})))","rout","route:","router","routes):","runtim","set])","system.","us","user","via","wrap","{::role","{:data","{:middlewar","{:request","{:statu"],"ring/data_driven_middleware.html":["\"/api/ping\"})","\"middlewar","#(interleav","#{:session}","#{:user}","%","&","'[reitit.middlewar","'[reitit.r","(actually,","(app","(conj","(def","(defn","(duct/integrant/macchiato","(fn","(fnil","(handler","(middleware/cr","(of","(optimized)","(optional)","(repeat","(requir","(ring/r","(ring/rout","(updat","1","1]","2","200,","2]]}","3","3]]","::acc","::wrap2","::wrap3",":a",":bodi",":compil",":debug",":debug]))})))",":descript",":get,",":handler",":handler)})",":handler]}",":middlewar",":name",":provides.",":reitit.middleware/transform",":requir",":spec",":uri",":wrap",";","=>","[\"/api\"","[\"/ping\"","[1","[3","[::acc]}]","[[wrap","[[wrap3","[])","[handler","[request]","[wrap","[wrap2","[{:key","acc","access","actual","ad","against","againt","allowed.","api","app","appli","arbitrari","arg","authorizationmiddlewar","avail","between","bubblin'","chain","chain,","class","clojure.spec","coerc","commun","compil","compilation.","compos","composit","conj","correctly:","creat","data","data,","data:","debug","default,","defin","definit","depend","descript","details.","doc","downsid","driven","duct","e.g.","easi","enabl","endpoint","endpoint.","entri","etc.","expans","extern","extra","first","follow","form","function","function,","function.","functions,","good","handler","handler}}]]","handler}}]])))","hard.","id))))","id]","idea","ident","injectuserintorequestmiddlewar","inventories,","issu","it'","key","keys,","keyword","level","make","map","merg","method","middlewar","middleware)","middleware,","middleware.","middleware])","name","new","normal","opaqu","optim","option","order.","packag","penalty.","per","performance.","processing,","produc","protocol.","provid","purpose:","qualifi","raw","re","record","registri","rehost","reitit","reitit.middleware/intomiddlewar","reitit.middleware/middlewar","rel","repo","request","request.","requir","resolut","respons","response.","results,","return","revers","reverse)})))","ring","ring])","roadmap","rout","router","router):","router.","runtim","see","set","special","stuffm?","style","style)","support","thing","things.\"","thu","top","transform","type","undelay","under:","understand","unwrap","us","valid","valu","vector","welcom","wrap","wrap2","wrap3","wrap})","wrap}))","wrong","yield","zero","{::middleware/transform","{:get","{:middlewar","{:name","{:request","{:statu"],"ring/coercion.html":["\"(constrain","\"(not","\"/api/ping\"})","\"/api/plus/3\"","\"1\"}","\"abba\"}","\"abba\"},","\"any\"","\"any\"},","\"int\",","\"pong\"}","\"pong\"})}]","'[reitit.coercion.schema])","'[reitit.cor","'[reitit.r","'[reitit.ring.coercion","'[schema.cor","'positiveint))","(","(+","(:query,","(app","(def","(fn","(integer?","(let","(mapv","(positiveint","(r/match","(requir","(ring/get","(ring/r","(ring/rout","(s/constrain","10}})","200","200,","2}})","400,","500,","6))\"},","6},","6}}","::mw/coerc","::ping","::ping)","::plu","::plus)",":a",":bodi",":body,",":body.",":body]}}",":coercion",":error",":form,",":get",":get,",":handler",":header",":in",":middlewar",":name)))",":paramet",":path",":path)",":post",":queri",":query,",":reitit.coercion/request",":reitit.coercion/respons",":respons",":result",":schema,",":type",":uri",":valu",":x)",":y)",":z))]",";",">",">>","[\"/api\"","[\"/ping\"","[\"/plus/:z\"","[::mw/coerc","[:request","[:respons","[]","[_]","[parameters]}]","[rrc/coerc","[total","[{:key","\\\"abba\\\"))\"},","actual","againt","also,","and/or","anything,","api","app","app)","appli","apply.","attach","basic","below","both","chain","clojure.spec","code","coerc","coerced.","coercer","coercion","coercion,","coercion.","compil","compojur","data","data.","defin","defined,","defined.","defined:","detail","doesn't","done:","enabl","endpoint","exampl","except","explain","follow","full","guide.","handler","handler/middlewar","here'","implement","initi","int","invalid","inventoried.","it'","itself","key","key.","method","middlewar","middleware:","middleware]}})))","models.","modules:","mount","multipl","mw","name","need","normal","optim","param","paramet","params]}}","plu","pluggabl","plumat","pos?","positiveint","positiveint)\"},","positiveint}}}","pretti","protocol","queri","r])","read","reitit","reitit,","reitit.coercion.schema/coercion","reitit.coercion.spec/coercion","reitit.coercion/coercion","reitit.ring.coercion:","request","request.","request:","respons","response:","response]","ring","ring,","ring])","rout","route.","router","router,","routes:","rrc/coerc","rrc])","rule","s/int","s/int}","s/int}}","s])","schema","schema:","scope","ship","singl","spec","step","success","swagger","syntax.","thank","thing","tool","total}}))})","total}}))}}]]","turn","type","under","us","valid","within","without","{\"x\"","{200","{:coercion","{:data","{:i","{:middlewar","{:name","{:queri","{:request","{:schema","{:statu","{:total","{:x","{:z"],"ring/route_data_validation.html":["\"/api/internal/users\"})","\"forbidden\"}","\"ok\"}","\"ok\"})","#{:admin","#{:admin}}}]]","#{:admin}}}]]]","#{:manager}","#{:manager}}","#{:public","#{}))","'[clojure.set","'[clojure.spec.alpha","'[expound.alpha","'[reitit.r","'[reitit.ring.spec","'[reitit.spec","(","(:get,","(and","(app","(def","(defn","(fn","(fulli","(handler","(if","(let","(not","(println","(requir","(ring/get","(ring/r","(ring/rout","(s/coll","(s/def","(s/key","(seq","(set/subset?","(some","(via","200,","403,","::role","::roles)]","::rs/explain","::zone",":a",":bodi",":data",":delet",":get",":intern",":internal}",":internal})",":into",":manager})",":middlewar",":post",":public",":public}",":req",":spec",":uri",":valid",":wrap",":zone",":zone)]",";",";;",">","[\"/api\"","[\"/api/internal/users\"","[\"/internal\"","[\"/ping\"","[\"/public\"","[\"/users\"","[::roles]","[::zone])","[[\"/api/public/ping\"","[_]","[handler]","[request]","[requir","[zone","[{:key","abil","about.","ad","alway","app","around","behavior","both","build","cleanli","clojure.spec","common","contribut","core","creation:","data","data:","defin","design,","differences:","dynam","e/expound","e])","effect","endpoint","endpoints.","enforc","etc.)","even","exampl","explicit","extens","fail","fast","feature,","few","fix","flatten","fulli","good:","handler","handler}","handler}]","handler}]]","handler}}]]]","harder","have","here","ignor","implicit","instead","invalid:","key","key.","keys)","keyset.","let'","match)","merg","method","middlewar","middleware)","middleware]}","miss","on:","option","path","power","powerful.","present","present:","problem:","push","qualifi","reason","reitit.ring.spec/valid","reitit.spec/valid","request","request)))))","request))))})","request}]","requir","required)","reus","reuse)","ring","ring])","role","roles)))","roles]","roles]}","roles]}]","roles]}]]","rout","router","router,","routes:","rrs/valid","rrs])","rs])","s/key","s])","scatter","separ","set])","silent","simpl","spec","spec!","specs.","str})))","sub","support","turn","un","us","valid","validation,","validation.","via","work","wrap","zone","zone)","{:data","{:get","{:handler","{:middlewar","{:name","{:request","{:statu","{:valid","{:zone"],"ring/compiling_middleware.html":["\"middlewar","#(respond","%))","%))))","'[reitit.spec","(","(:request","([request","([request]","(and","(coerc","(coercion/coerc","(coercion/respons","(compiled)","(def","(defn","(fn","(handler","(if","(let","(records,","(requir","(respons","(ring/get","50%","::coerc","::rs/respons",":a",":coercion",":coercion)",":compil",":compile.",":data",":opts)]",":respons",":responses)",":result",":spec",":wrap.","=>",">","?wrap.","[coercer","[coercion","[handler]","[method","[respons","[{:key","`reitit.coercion/coercion`","access","actual","approaches,","below","better.","but,","closur","code,","coerc","coercer","coercion","coercion.","compil","creation","data","data,","decid","defin","demonstr","dynam","easi","easier","enabl","enforc","etc.)","exact","expect","extend","extens","extract","fast","faster","faster.","function","handler","inform","instead","it?","itself","key","know","latter","less","link","local","lookup","match","method","middlewar","middleware/interceptor","mount","mount.\"","much","nil.","normal","nothing.\"","opt","opts)]","opts]","otherwis","pass","pluggabl","pre","processing.","provid","raise))))))","raise)))))))})","raise]","read","reason","reasoning:","record","relev","request","request)","request)))","request.","requir","respond","respons","response))","response)))","responses)","responses]}","return","ring","role","rout","router","rs])","runtim","shape","spec","system.","time.","to,","transform","two","type","us","validation.","via","want,","way","wrap","written","yield","{:name"],"performance.html":["\"/auth/login\")))","\"/workspace/1/1\")))","&","'[criterium.cor","'[reitit.cor","(ataraxy,","(cc/quick","(def","(dotim","(just","(matches,","(micro","(or","(per","(r/match","(r/router","(real","(requir","(static","(which","(wildcard",")benchmark","/api/command/add","1","1.9m","100","1000)","1000):","1000]","16","2,5","24x","256","3.2","300","312m","4","50+","500x","530","6",":",":a",":auth/login]",":auth/recovery]",":lookup",":mix",":request",":segment",":workspace/page]]))",";;","=>",">","[\"/auth/recovery/token/:token\"","[\"/workspace/:project/:page\"","[[\"/auth/login\"","[_","`lein","abstract","accur","actual","adopt","again,","against.","algorithm,","algorithms,","also,","alway","anoth","api","ataraxi","average,","back","base","baselin","bench","benchmark.","best","better","better,","between","bide","bidi,","both","box","busi","but,","cach","cache:","case,","case.","cc])","choos","ci","clojure(script),","code","command","compar","compil","compojur","comput","conflict","consist","constant,","contain","core","core):","cores:","cqr","created,","creation","data.","definit","definitions.","degrade.","depends.","differ","disabl","do","don't","e.g.","effect","enabl","ensur","environment.","error.","errors.","even","exampl","execut","fail","fallback","fast","fast),","fast.","faster","fastest","featur","few","first","flatten","follow","found","found,","function","gb","ghz","go.","great","handler.","have","help","here,","here.","hopefulli","http","i7","idea","identifier:","immut","implementation.","infinit","inlin","instead","intel","interceptor)","interest","intern","invok","it'","jvm","kb","know.","known","l2","l3","languages,","larg","large!","lib","librari","libs.","life","life)","long","look","lookup","lot","lot.","lupapiste.","macbook","macbookpro11,3","magnitud","magnitude.","manag","mani","map","maps)","match","matter","matter?","mb","mean","measur","measure?","memory:","method","mid","middlewar","middleware,","mind.","mix","model","more","mount","move","much","multimethod","multipl","mutabl","name:","nearli","need","new","non","not.","notabl","note:","nothing.","ns","number","ok","on","opensensor","ops/sec","optim","order","order.","origin","out","over","parameters.","partial","path","path)","path.","pedest","pedestal).","pedestal.","perf","perf.","perform","performance,","performance.","performance:","pleas","port","possibl","precompute/compil","prefix","pro","process","processor","processors:","proof","protocol","pull","queri","r])","rational","re","readme:","real","realistic.","realli","record","regress","reitit","repl","repl`","repo","request","resolut","rest","rest(ish)","result","rewritten","ring","rout","route(s)","router","router,","router.","routers.","routes)","routes,","run","same","sampl","scenario","scientif","second","segment","separ","serv","setup:","shine","simpl","site","size","slower","slowest","small","snappi","so,","someth","speed:","stabl","start","static","static,","still","style","swagger","tabl","take","taken","test","tests,","thank","thing","three","time","time,","tip","too).","total","tree","tree,","tree.","trees,","tri","trust","two","unmount","us","view","want","welcome.","well,","wildcard","work","yield","~200","~300","µs","µs."],"faq.html":["(like","ad","anoth","ask","best","both","class","clojure,","coercion","conflict","data,","exist","faq","fast.","felt","first","frequent","full","fun","great","lib","librari","library?","libs,","make","mani","miss","none","part","perfect.","pick","question","realli","really,","resolution)","rout","spec","thing","tri","us"]},"length":28},"tokenStore":{"root":{"0":{"docs":{},"]":{"docs":{},"}":{"docs":{},")":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}},"x":{"1":{"5":{"docs":{},"b":{"5":{"9":{"docs":{},"b":{"0":{"docs":{},"e":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.012371134020618556}}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"7":{"4":{"6":{"1":{"7":{"4":{"4":{"docs":{},"b":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"1":{"0":{"0":{"0":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"]":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}},"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},"docs":{},"}":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}},"2":{"3":{"docs":{},"}":{"docs":{},"}":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}},"docs":{}},"6":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"]":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}}},".":{"9":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"docs":{}}},"2":{"0":{"0":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902}},",":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"ring/ring.html":{"ref":"ring/ring.html","tf":0.016423357664233577},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}}}},"docs":{}},"4":{"docs":{},"x":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"5":{"6":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{}},"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}},"}":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}},",":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}},"}":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}},"]":{"docs":{},"]":{"docs":{},"}":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}}}}},",":{"5":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{}}},"3":{"0":{"0":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{}},"1":{"2":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"docs":{}},"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}},"]":{"docs":{},"]":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}}}},".":{"2":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{}}},"4":{"0":{"0":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}},"3":{"docs":{},",":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"4":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.009124087591240875}}}},"5":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526}}}},"6":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526}}}},"docs":{}},"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},"5":{"0":{"0":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},"x":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"docs":{},"%":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}},"+":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"3":{"0":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{}},"docs":{}},"6":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},")":{"docs":{},")":{"docs":{},"\"":{"docs":{},"}":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"}":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},"}":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"docs":{},"\"":{"0":{"docs":{},".":{"1":{"docs":{},".":{"0":{"docs":{"./":{"ref":"./","tf":0.01282051282051282}}},"docs":{}}},"4":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}},"docs":{}}},"docs":{}}},"1":{"2":{"3":{"docs":{},"\"":{"docs":{},"}":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}},"docs":{}},"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},"}":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}}}}},"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.005128205128205128}}}}}}}}}},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},",":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}},"}":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}}}}}}},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"\"":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}},"}":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}},"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}},"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.005128205128205128}},",":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.007692307692307693},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}},"}":{"docs":{"./":{"ref":"./","tf":0.007692307692307693},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"/":{"3":{"docs":{},"\"":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902}}}},"docs":{}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"1":{"docs":{},"\"":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}},")":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678}}}}},"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}}}}}}}}}}}},"\"":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}}}}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}},")":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"\"":{"docs":{},")":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},")":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006711409395973154}}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.012773722627737226}}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}}}}},":":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},":":{"docs":{},"u":{"docs":{},"s":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"1":{"2":{"3":{"docs":{},"\"":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}},"}":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}},"docs":{}},"docs":{}},"docs":{},"i":{"docs":{},"k":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"\"":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"/":{"1":{"docs":{},"/":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"docs":{}}},"docs":{}}}}}}}}}}}},"o":{"docs":{},"k":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"$":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"@":{"1":{"5":{"docs":{},"b":{"5":{"9":{"docs":{},"b":{"0":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"]":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}},"}":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"$":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"_":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"$":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"_":{"docs":{},"_":{"2":{"1":{"2":{"4":{"docs":{},"@":{"7":{"4":{"6":{"1":{"7":{"4":{"4":{"docs":{},"b":{"docs":{},"\"":{"docs":{},"]":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"\"":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"}":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"]":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}}}}}},"k":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{},"}":{"docs":{},"}":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.010327022375215147},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016129032258064516},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012345679012345678},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015625}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}},"docs":{}}}}}}},"\"":{"docs":{},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.010948905109489052}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}},"k":{"docs":{},"o":{"docs":{},"s":{"docs":{},"h":{"docs":{},"\"":{"docs":{},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"\"":{"docs":{},"}":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}}}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}},"a":{"docs":{},"b":{"docs":{},"b":{"docs":{},"a":{"docs":{},"\"":{"docs":{},"}":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"n":{"docs":{},"y":{"docs":{},"\"":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},"}":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},"}":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},")":{"docs":{},"}":{"docs":{},"]":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}}},"#":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"{":{"docs":{},":":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.01282051282051282},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014184397163120567},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"s":{"docs":{},"{":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}},":":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}}}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"[":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"$":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"]":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"$":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.012371134020618556}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"$":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"_":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"$":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"_":{"docs":{},"_":{"2":{"1":{"2":{"4":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"$":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"]":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"$":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"$":{"docs":{},"]":{"docs":{},"}":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},"]":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"{":{"docs":{},":":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}}}},"{":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"}":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}},"}":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.008247422680412371},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016778523489932886}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},"]":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"z":{"docs":{},"}":{"docs":{},"}":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"]":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}}}}},"d":{"docs":{},"b":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006711409395973154}}}},"s":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"}":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}}}}}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"}":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}},"}":{"docs":{},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"}":{"docs":{},"}":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}}}}}}}},":":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"{":{"docs":{},":":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{},":":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}}}}}}}}}}}}}}}}}}},"'":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{},":":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}}}}}}}}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"v":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}}}},"&":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"'":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}},"[":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}},".":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"]":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"]":{"docs":{},")":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}}}}}}}}}}}}},"r":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"u":{"docs":{},"m":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}}}}}}},"(":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01812688821752266}},":":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}}}}}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"ring/ring.html":{"ref":"ring/ring.html","tf":0.029197080291970802},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"n":{"docs":{},"d":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}}}},"s":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"x":{"docs":{},"y":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}},"a":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}},"*":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828}}},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.012285012285012284}}}}},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828}}}}},"o":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"b":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"k":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.007371007371007371}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.007371007371007371}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"?":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}},"f":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}},"o":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"p":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"j":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.010948905109489052},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}},"l":{"docs":{},"l":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"m":{"docs":{},"p":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}},"e":{"docs":{},"!":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}}}}}}}},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705}}}}}}}}},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"j":{"docs":{},":":{"4":{"7":{"3":{"9":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},"q":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"a":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}},"c":{"docs":{},"/":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.007692307692307693},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012773722627737226},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.01152073732718894},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.018218623481781375},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"n":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0072992700729927005},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.038461538461538464}}}}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.012084592145015106}},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"o":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.015105740181268883}}}}}}}}},"r":{"docs":{},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.023076923076923078},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.024691358024691357},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0425531914893617},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.010327022375215147},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.008247422680412371},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014388489208633094},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.007692307692307693},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.008247422680412371},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.01721170395869191},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.03225806451612903},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.030864197530864196},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0234375},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0171990171990172},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.013157894736842105},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.012145748987854251},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}},"a":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}},"r":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012773722627737226},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.016194331983805668}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012773722627737226},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.016194331983805668}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856}},"e":{"docs":{},"r":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}}},"t":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.018518518518518517},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"!":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}},"/":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"?":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}},"q":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}},"w":{"docs":{},"i":{"docs":{},"p":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.005128205128205128}}}},"t":{"docs":{},"h":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}},"l":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"h":{"docs":{},"i":{"docs":{},"c":{"docs":{},"h":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"*":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},".":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}},"[":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}}}},"i":{"docs":{},"f":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"?":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"o":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"t":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016129032258064516},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012345679012345678},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015625}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"p":{"docs":{},"v":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}},"a":{"docs":{},"l":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}},"m":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678}}}}},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.007371007371007371},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},"f":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}},"v":{"docs":{},"i":{"docs":{},"a":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}},"#":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"{":{"docs":{},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.019230769230769232}}},"{":{"docs":{},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}}}}},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}},"b":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"k":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}},"e":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.015105740181268883}}}},"i":{"docs":{},"k":{"docs":{},"e":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}},"+":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"n":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.005253940455341506}}}}},"j":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},":":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.015384615384615385}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}},"]":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"}":{"docs":{"./":{"ref":"./","tf":0.007692307692307693}},"]":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.018518518518518517}}}}},"l":{"docs":{},"u":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},"s":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"}":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"c":{"docs":{},"c":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"d":{"docs":{},"b":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"}":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}},"}":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"e":{"docs":{},"v":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.018518518518518517},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}}}}}},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014184397163120567}},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}}},"s":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}},"]":{"docs":{},")":{"docs":{},")":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}}}},"k":{"docs":{},"i":{"docs":{},"k":{"docs":{},"k":{"docs":{},"a":{"docs":{},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}}}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.010309278350515464},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.022267206477732792}},"s":{"docs":{},")":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"s":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}},"docs":{}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"2":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"3":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"docs":{}}}}},"m":{"docs":{},"w":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}}}},"z":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}}}}}}},"a":{"docs":{"./":{"ref":"./","tf":0.007692307692307693},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.008247422680412371},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.012048192771084338},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.024193548387096774},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.024691358024691357},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015625},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.014742014742014743},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.009398496240601503},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.01417004048582996},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},"]":{"docs":{},"]":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"}":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}},"z":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}},"p":{"docs":{},"i":{"docs":{},"]":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}},"}":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}},")":{"docs":{},"]":{"docs":{},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}}}},"r":{"docs":{},"g":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.014742014742014743}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"]":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0364963503649635},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.03571428571428571},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.03007518796992481},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.010121457489878543}}},"y":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},".":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},"]":{"docs":{},"}":{"docs":{},"}":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.015384615384615385},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.02127659574468085},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01812688821752266}}}}},"i":{"docs":{},"s":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}}}},"e":{"docs":{},"v":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}},"e":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526}}},"]":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}},"]":{"docs":{},")":{"docs":{},")":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}}}}}}}},"b":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},"]":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.01417004048582996}},",":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01824817518248175},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016778523489932886},"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},")":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"]":{"docs":{},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}}}}}}}}},"x":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}},"o":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.028205128205128206},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.024691358024691357},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.03546099290780142},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.020134228187919462},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.013769363166953529},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016129032258064516},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012345679012345678},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015625},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.014742014742014743},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.009398496240601503}},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}},"c":{"docs":{},"h":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}},"e":{"docs":{},"t":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.01549053356282272},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.03225806451612903},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.024691358024691357},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.03125},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.009398496240601503}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}}}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.009398496240601503},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},")":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}},"u":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}},"}":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}}}}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}}},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}},"o":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.015384615384615385},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.02127659574468085},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.008605851979345954},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.012084592145015106}},"e":{"docs":{},"s":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.010309278350515464}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},"e":{"docs":{},"r":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.014742014742014743}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0171990171990172}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.04176904176904177}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}}},"u":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828}},"e":{"docs":{},"r":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}}}},"u":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"ring/ring.html":{"ref":"ring/ring.html","tf":0.025547445255474453},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.022375215146299483},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.03225806451612903},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012345679012345678},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.03125}},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"}":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731}},"]":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731}}}}}}}},"u":{"docs":{},"s":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}},"]":{"docs":{},"]":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}}},"]":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.012371134020618556}},"e":{"docs":{},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"]":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"s":{"docs":{},")":{"docs":{},")":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}},"docs":{}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}},"e":{"docs":{},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.013769363166953529},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016129032258064516},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012345679012345678},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015625},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}}}}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.014742014742014743}}}}}},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094}}}}}}},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"u":{"docs":{},"p":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.011278195488721804}}},"y":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"i":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},"t":{"docs":{},"o":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}},"a":{"docs":{},"l":{"docs":{},"}":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}},"s":{"docs":{},")":{"docs":{},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.01443298969072165},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"e":{"docs":{},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}},"i":{"docs":{},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"u":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}},"i":{"docs":{},"a":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}},"x":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}},"y":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}},"z":{"docs":{},")":{"docs":{},")":{"docs":{},"]":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},")":{"docs":{},"]":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}},";":{"docs":{"./":{"ref":"./","tf":0.10512820512820513},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.029585798816568046},"basics/router.html":{"ref":"basics/router.html","tf":0.026785714285714284},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.07407407407407407},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.1276595744680851},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.10067114093959731},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.12577319587628866},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.17266187050359713},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.06196213425129088},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.08064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.05555555555555555},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.078125},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.2727272727272727},"ring/ring.html":{"ref":"ring/ring.html","tf":0.040145985401459854},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.03759398496240601},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},";":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834},"performance.html":{"ref":"performance.html","tf":0.028021015761821366}}}},">":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.05755395683453238},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"ring/ring.html":{"ref":"ring/ring.html","tf":0.010948905109489052},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.015037593984962405},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01812688821752266},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},">":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}},"[":{"0":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}},"1":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}},"3":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"docs":{},"\"":{"docs":{},"/":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.01775147928994083},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.008247422680412371},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.012145748987854251}}},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}}}}}}}}},":":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"/":{"docs":{},":":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"\"":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009124087591240875},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.013422818791946308},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"/":{"docs":{},"*":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"\"":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}}}},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}}}}}}}},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"/":{"docs":{},":":{"docs":{},"z":{"docs":{},"\"":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016778523489932886},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}}}},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}}}}}}}}}},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}},"e":{"docs":{},"v":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},":":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},":":{"docs":{},"u":{"docs":{},"s":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{},"/":{"docs":{},":":{"docs":{},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"\"":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"/":{"docs":{},":":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}},"docs":{}}}}}}}},"[":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"/":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}},"\"":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.013422818791946308},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},":":{"docs":{},"u":{"docs":{},"s":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}}}},"#":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"[":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"$":{"docs":{},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"3":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}}},"docs":{"./":{"ref":"./","tf":0.005128205128205128},"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}}}}}},":":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}},"_":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"]":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.01282051282051282}}}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"i":{"docs":{},"r":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}},":":{"docs":{},":":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{},",":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}},"}":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"p":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006711409395973154}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}},"c":{"docs":{},"c":{"docs":{},"]":{"docs":{},"}":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"d":{"docs":{},"b":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}}}}}}}},"m":{"docs":{},"w":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}},"z":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"]":{"docs":{},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"p":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},"e":{"docs":{},"s":{"docs":{},"]":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"]":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"}":{"docs":{},")":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"e":{"docs":{},"s":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}},"d":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"]":{"docs":{},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}},"]":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"]":{"docs":{},"}":{"docs":{},"]":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.026785714285714284}},"s":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.03571428571428571}}}}}}},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}},"%":{"docs":{},"]":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.007371007371007371}}}},"]":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}},"}":{"docs":{},")":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}},"#":{"docs":{},"(":{"docs":{},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}},"{":{"docs":{},":":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"2":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645}}},"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"z":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.020242914979757085}}}}}},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"d":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"advanced/":{"ref":"advanced/","tf":10.125}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"p":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01824817518248175},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.020242914979757085}},"l":{"docs":{},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.010327022375215147},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902}},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}},"y":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}},"r":{"docs":{},"o":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}}}}},"i":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.005253940455341506}}}},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"c":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"u":{"docs":{},"m":{"docs":{},"u":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526}}}},"s":{"docs":{},"s":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"r":{"docs":{},"g":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.019230769230769232},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},"s":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}}}}},"s":{"docs":{},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"t":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.007371007371007371}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"x":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"n":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"}":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}}},"n":{"docs":{},"y":{"docs":{},"m":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285}}}}}},"d":{"docs":{},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}},"i":{"docs":{},"z":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},",":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.005253940455341506}}}}},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"m":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"s":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}},"g":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},":":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}},"s":{"docs":{},"t":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"t":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"s":{"docs":{},"k":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},".":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/":{"ref":"basics/","tf":0.11764705882352941},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":3.3580246913580245},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":3.340425531914893},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0072992700729927005},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"i":{"docs":{},"c":{"docs":{"basics/":{"ref":"basics/","tf":10.058823529411764},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"c":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}},"d":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"i":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"e":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}}},"a":{"docs":{},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"w":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"k":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708},"faq.html":{"ref":"faq.html","tf":0.046511627906976744}}}},"n":{"docs":{},"u":{"docs":{},"s":{"docs":{},",":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}},"x":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},".":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"d":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}},"b":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"'":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"t":{"docs":{},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}},"s":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}},"i":{"docs":{},"n":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.01152073732718894},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}},"o":{"docs":{},"o":{"docs":{},"s":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}},"j":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"coercion/":{"ref":"coercion/","tf":0.125},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":10.018518518518519},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"f":{"docs":{},"n":{"docs":{},"?":{"docs":{},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}},"e":{"docs":{},"x":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}},",":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"o":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.011278195488721804},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.010256410256410256},"coercion/":{"ref":"coercion/","tf":10.25},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":5.039586919104991},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016129032258064516},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.018518518518518517},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015625},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/coercion.html":{"ref":"ring/coercion.html","tf":5.037593984962406},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.027190332326283987},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902}}},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}}}}},"]":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}},":":{"docs":{"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016129032258064516},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012345679012345678},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015625}}}}}},"e":{"docs":{},"!":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.024193548387096774},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.018518518518518517},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0234375}}},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.008605851979345954},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.02416918429003021}},"s":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}},"}":{"docs":{},")":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}}},"d":{"docs":{},".":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.013769363166953529},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0072992700729927005},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.013824884792626729},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":5.015105740181269},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"r":{"docs":{},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}},"(":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"/":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"j":{"docs":{},"c":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"_":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"j":{"docs":{},"c":{"docs":{},":":{"1":{"5":{"1":{"docs":{},":":{"1":{"docs":{},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}}}},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"s":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"i":{"docs":{},"t":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"a":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"u":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"m":{"docs":{},"u":{"docs":{},"n":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}},"o":{"docs":{},"n":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/":{"ref":"basics/","tf":0.058823529411764705},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":5.043165467625899},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"s":{"docs":{},":":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}},"!":{"docs":{},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02158273381294964}}}}},"i":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"advanced/":{"ref":"advanced/","tf":0.125},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":5.019230769230769},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}}},"j":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014388489208633094},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},")":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"s":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}},"d":{"docs":{},"e":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"s":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"l":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}}},"c":{"docs":{},"h":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"e":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"q":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.03571428571428571},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},":":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}}}}}}}}}},"c":{"docs":{},"]":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.01282051282051282},"basics/":{"ref":"basics/","tf":0.11764705882352941},"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data.html":{"ref":"basics/route_data.html","tf":5.030201342281879},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":3.3498281786941577},"coercion/":{"ref":"coercion/","tf":0.125},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.008605851979345954},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":5.015625},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.028846153846153848},"ring/":{"ref":"ring/","tf":0.13333333333333333},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":3.34715821812596},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":3.349527665317139},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.012084592145015106}},",":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.008247422680412371},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},":":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.012371134020618556},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}}},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}}}}},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}},"s":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.010327022375215147},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.016917293233082706},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},")":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},":":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"i":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009124087591240875}},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"s":{"docs":{},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}},"v":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},",":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},"s":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258}}}}},"i":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}}}},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}},"s":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"advanced/":{"ref":"advanced/","tf":0.125},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":5.014388489208633},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.010256410256410256},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":3.3379416282642085}}}}}}},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":5.007142857142857},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"o":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"n":{"docs":{},"e":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}},"'":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.005253940455341506}}}}},"e":{"docs":{},"s":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902}}}}}}},"c":{"docs":{"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"w":{"docs":{},"n":{"docs":{},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"b":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"e":{"docs":{},"x":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"c":{"docs":{},"t":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}},"s":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":5.014285714285714},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}},"r":{"docs":{},"n":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"r":{"docs":{},"a":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"c":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.020134228187919462},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"s":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}}}}},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/":{"ref":"coercion/","tf":0.125},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":5.001721170395869},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},"l":{"docs":{},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}}},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"n":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"d":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"s":{"docs":{},".":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"v":{"docs":{},"i":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}}}}}}}}}},"]":{"docs":{},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},"s":{"docs":{},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},":":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}},".":{"docs":{},"g":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"t":{"docs":{},"c":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"f":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553},"performance.html":{"ref":"performance.html","tf":0.005253940455341506}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"e":{"docs":{},"r":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0070052539404553416}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},")":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}},"l":{"docs":{},"s":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"e":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}}}},"i":{"docs":{},"l":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.010309278350515464},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.012285012285012284},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}},":":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}},"s":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}},"q":{"docs":{"faq.html":{"ref":"faq.html","tf":10}}}},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}},"x":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"r":{"docs":{},"m":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"a":{"docs":{},"t":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}}},"u":{"docs":{},"n":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.057692307692307696},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.01152073732718894},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}},",":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}},".":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}},"l":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}},"n":{"docs":{},"?":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"e":{"docs":{},",":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"w":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"l":{"docs":{},"t":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.010256410256410256},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/ring.html":{"ref":"ring/ring.html","tf":0.03832116788321168},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.013824884792626729},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.03643724696356275},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"}":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"]":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},"]":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}},"]":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526}}},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},"s":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}},"/":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"v":{"docs":{},"e":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}}},"s":{"docs":{},"h":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}},"r":{"docs":{},"d":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"e":{"docs":{},"r":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}},"l":{"docs":{},"p":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"e":{"docs":{},"r":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822}}}}}},"r":{"docs":{},"e":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"'":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}},"s":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}},"l":{"docs":{},"d":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}},"c":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}},"p":{"docs":{},"e":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}},"i":{"7":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.02877697841726619},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.024096385542168676},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.03225806451612903},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.018518518518518517},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.03125}},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"]":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"]":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}},")":{"docs":{},")":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}}}},"}":{"docs":{"./":{"ref":"./","tf":0.005128205128205128}},",":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}},"\"":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006711409395973154}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006711409395973154}}}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006711409395973154}},")":{"docs":{},")":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006711409395973154}}}}}}},"]":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"a":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014388489208633094}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"]":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"advanced/":{"ref":"advanced/","tf":0.125},"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":10.117647058823529}},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"s":{"docs":{},".":{"docs":{"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}},"n":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":10.002564102564103}}}}}}}},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}},"}":{"docs":{},"}":{"docs":{},"}":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258}}}}}},"?":{"docs":{},"}":{"docs":{},"}":{"docs":{},"}":{"docs":{},",":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}},"]":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"r":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}}},"f":{"docs":{},"o":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}},"r":{"docs":{},"m":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.007371007371007371}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.008247422680412371},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},":":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}},"s":{"docs":{},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}},"o":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.019230769230769232},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}},"t":{"docs":{},"'":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006711409395973154},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},",":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"?":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02158273381294964},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}},"l":{"docs":{},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"s":{"docs":{},"s":{"docs":{},"u":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"k":{"docs":{},"e":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"m":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}}},"y":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.010309278350515464},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}}}}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"s":{"docs":{},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}},"e":{"docs":{},"t":{"docs":{},".":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"b":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"l":{"2":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"3":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}},"a":{"docs":{},"f":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}},"t":{"docs":{},"'":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}}}},"s":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"i":{"docs":{},"b":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}},"y":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}},"?":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}}},"s":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},",":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}},"s":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}}},"n":{"docs":{},"k":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}},"f":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}},"o":{"docs":{},"g":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}},"o":{"docs":{},"k":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"u":{"docs":{},"p":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0070052539404553416}},",":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"n":{"docs":{},"g":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"r":{"docs":{},"g":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"e":{"docs":{},"!":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"u":{"docs":{},"p":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.04938271604938271},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.02127659574468085},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006711409395973154},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014388489208633094},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.008605851979345954},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016129032258064516},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012345679012345678},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015625},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02158273381294964},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.030211480362537766},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"?":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}},",":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678}}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"s":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},")":{"docs":{},")":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}},":":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"?":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"p":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},".":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}},"s":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"i":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"k":{"docs":{},"e":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}},"g":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}}},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"u":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.005253940455341506}},"e":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"n":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"a":{"docs":{},"g":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"p":{"docs":{},"r":{"docs":{},"o":{"1":{"1":{"docs":{},",":{"3":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/ring.html":{"ref":"ring/ring.html","tf":0.03467153284671533},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.015105740181268883},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},".":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"s":{"docs":{},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}},"a":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006711409395973154}}}},"r":{"docs":{},"g":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"e":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}},"a":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.005253940455341506}},"e":{"docs":{},"?":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"i":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"ring/":{"ref":"ring/","tf":0.13333333333333333},"ring/ring.html":{"ref":"ring/ring.html","tf":0.016423357664233577},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":3.4139784946236555},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.02834008097165992},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":5.027190332326284},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}},"]":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"}":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"s":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}},"t":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}},"n":{"docs":{},"d":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"x":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"e":{"docs":{},"?":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"s":{"docs":{},".":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"r":{"docs":{},"e":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"performance.html":{"ref":"performance.html","tf":0.005253940455341506}},".":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},".":{"docs":{},"\"":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"v":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"l":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"w":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},"b":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.015384615384615385},"basics/":{"ref":"basics/","tf":0.058823529411764705},"basics/router.html":{"ref":"basics/router.html","tf":0.05357142857142857},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":3.382978723404255},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006711409395973154},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},"]":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}},"!":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}},".":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"s":{"docs":{},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.023076923076923078},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.024691358024691357},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.02127659574468085},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0072992700729927005}},",":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014184397163120567},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822}}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}},":":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}},")":{"docs":{},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"]":{"docs":{},"]":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}},"e":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012345679012345678},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}},"w":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"a":{"docs":{},"r":{"docs":{},"l":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"o":{"docs":{},"n":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"e":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}},"t":{"docs":{},"e":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"\"":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}}}}}},"w":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822}}},"d":{"docs":{},"e":{"docs":{},".":{"docs":{},"j":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}},"s":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.04807692307692308},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.03571428571428571},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}}},"s":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},",":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"m":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0070052539404553416}}},"n":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}},"s":{"docs":{},")":{"docs":{},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}}}},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"a":{"docs":{},"q":{"docs":{},"u":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"o":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}}}},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.008756567425569177}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"n":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02158273381294964},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.005253940455341506}},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}}}}}}},"f":{"docs":{},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"v":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}}},"t":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"*":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.015384615384615385},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.028368794326241134},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012345679012345678},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.011278195488721804}},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.012048192771084338},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.02443609022556391}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"s":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"s":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}},"}":{"docs":{},"}":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"}":{"docs":{},"}":{"docs":{},",":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}},"]":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}}}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}},",":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678}}}}}}}}}}}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}},"s":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822}}}},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.007692307692307693},"basics/":{"ref":"basics/","tf":0.058823529411764705},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.023668639053254437},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":3.4320987654320985},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.02127659574468085},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.01721170395869191},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.03225806451612903},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.024691358024691357},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.03125},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02877697841726619},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.010507880910683012}},"]":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"]":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"s":{"docs":{},"s":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}}}}}},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"performance.html":{"ref":"performance.html","tf":0.0070052539404553416}},"a":{"docs":{},"l":{"docs":{},")":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"f":{"docs":{"performance.html":{"ref":"performance.html","tf":0.012259194395796848}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"performance.html":{"ref":"performance.html","tf":10.00875656742557}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}}}},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}},"l":{"docs":{},"u":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},"g":{"docs":{},"g":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/coercion.html":{"ref":"ring/coercion.html","tf":5.0018796992481205},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"coercion/":{"ref":"coercion/","tf":0.125},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":5.016129032258065},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"r":{"docs":{},"o":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705}}}}}}},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}},".":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}},",":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"s":{"docs":{},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}},":":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"o":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"s":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"o":{"docs":{},"f":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"p":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"l":{"docs":{},"n":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"s":{"docs":{},"!":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}}}}}}}}}},"e":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.007371007371007371}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},":":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"s":{"docs":{},"?":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},")":{"docs":{},"\"":{"docs":{},"}":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}},"}":{"docs":{},"}":{"docs":{},"}":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"b":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"w":{"docs":{},"e":{"docs":{},"r":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},".":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},"r":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},":":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"s":{"docs":{},"h":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}}}},"l":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735}},"]":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"e":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.008756567425569177}},",":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},"e":{"docs":{},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678}}}}}}},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"!":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.008605851979345954},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016129032258064516},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012345679012345678},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015625},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012773722627737226},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.027190332326283987},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.015105740181268883}},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},")":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}},"}":{"docs":{},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"}":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}},":":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}}}},"v":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.019230769230769232},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"(":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.005474452554744526},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.015037593984962405},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.045317220543806644}},"e":{"docs":{},"s":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},"]":{"docs":{},"}":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},":":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},"]":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00906344410876133}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"s":{"docs":{},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"e":{"docs":{},")":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.024691358024691357},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}}},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.013824884792626729},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"a":{"docs":{},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"i":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}},"m":{"docs":{},"e":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}}},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.005253940455341506}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"l":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}},"y":{"docs":{},",":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}}},"l":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"e":{"docs":{},"v":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"p":{"docs":{},"o":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"`":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"u":{"docs":{},"s":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"e":{"docs":{},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.01282051282051282},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"ring/":{"ref":"ring/","tf":10.133333333333333},"ring/ring.html":{"ref":"ring/ring.html","tf":5.014598540145985},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"]":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"/":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.015384615384615385},"basics/":{"ref":"basics/","tf":0.35294117647058826},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":5.0828402366863905},"basics/router.html":{"ref":"basics/router.html","tf":0.0625},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":3.3703703703703702},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":3.3687943262411344},"basics/route_data.html":{"ref":"basics/route_data.html","tf":5.050335570469799},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":3.3663230240549824},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":5.0503597122302155},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.01721170395869191},"advanced/":{"ref":"advanced/","tf":0.125},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.1346153846153846},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.050359712230215826},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":5.031941031941032},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/ring.html":{"ref":"ring/ring.html","tf":0.016423357664233577},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.011278195488721804},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":3.349527665317139},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.03625377643504532},"performance.html":{"ref":"performance.html","tf":0.05253940455341506},"faq.html":{"ref":"faq.html","tf":0.09302325581395349}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.046153846153846156},"basics/":{"ref":"basics/","tf":0.058823529411764705},"basics/router.html":{"ref":"basics/router.html","tf":10.080357142857142},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.04938271604938271},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.04964539007092199},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.03691275167785235},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.02877697841726619},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.01549053356282272},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016129032258064516},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012345679012345678},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015625},"advanced/":{"ref":"advanced/","tf":0.25},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":5.038461538461538},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":5.122302158273381},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/ring.html":{"ref":"ring/ring.html","tf":5.005474452554744},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.008756567425569177}},")":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}},":":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094}}},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"performance.html":{"ref":"performance.html","tf":0.005253940455341506}}},"s":{"docs":{},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143}}},"s":{"docs":{},".":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02877697841726619}}},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.02158273381294964},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}},")":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},":":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}},",":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},",":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02158273381294964},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.014742014742014743}}}}}},"(":{"docs":{},"s":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}},":":{"docs":{"./":{"ref":"./","tf":0.010256410256410256},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},",":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}},")":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678}}}}}}}},"o":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}},"l":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}},"s":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}},":":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}},"]":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}},"}":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},"]":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"]":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"a":{"docs":{},"w":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},")":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}}}}},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"s":{"docs":{},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.008247422680412371}}}}}}}},"]":{"docs":{},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"u":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"performance.html":{"ref":"performance.html","tf":0.005253940455341506}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"?":{"docs":{"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705}}}}}}},"l":{"docs":{},"e":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}},"]":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"s":{"docs":{},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}}}}}}}},"]":{"docs":{},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"coercion/":{"ref":"coercion/","tf":0.125},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.008605851979345954},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":5.016129032258065},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.011278195488721804}},":":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"f":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735},"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}},"a":{"docs":{},"l":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}},"]":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"u":{"docs":{},"p":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}},"e":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152}}},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"r":{"docs":{},"v":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"d":{"docs":{},"e":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"t":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"z":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.002564102564102564}}}}}},"o":{"docs":{},"w":{"docs":{},",":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}}},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{},"\"":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.01282051282051282}}}}}}}},"p":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.018556701030927835},"coercion/":{"ref":"coercion/","tf":0.125},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012345679012345678},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":5.015625},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.012285012285012284},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.018218623481781375},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"!":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.012145748987854251}},"}":{"docs":{},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828}}},".":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"?":{"docs":{},")":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"?":{"docs":{},")":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}}}}}}}}}},"]":{"docs":{},")":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}}},"a":{"docs":{},"l":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"s":{"docs":{},".":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"t":{"docs":{},"y":{"docs":{},"l":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"r":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}},"s":{"docs":{},":":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822}}}},"?":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}},",":{"docs":{"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}}},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}},"}":{"docs":{},")":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}}}}}},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}}}}}}},"e":{"docs":{},"p":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},"s":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}},"s":{"docs":{},"t":{"docs":{},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02877697841726619},"performance.html":{"ref":"performance.html","tf":0.008756567425569177}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"b":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}},"l":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}},"f":{"docs":{},"f":{"docs":{},"m":{"docs":{},"?":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"e":{"docs":{},"r":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}}},"b":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}}},"y":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/":{"ref":"basics/","tf":0.058823529411764705},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":5.005917159763314},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}},".":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},".":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"p":{"docs":{},"l":{"docs":{"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"f":{"docs":{},"i":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}}}}}}}},"]":{"docs":{},")":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0070052539404553416}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}},"}":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203}},"}":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},"}":{"docs":{},"]":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258}},")":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258}}}}},"*":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"h":{"docs":{},"i":{"docs":{},"p":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},"n":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"o":{"docs":{},"w":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}},"a":{"docs":{},"p":{"docs":{},"e":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"e":{"docs":{},"e":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"performance.html":{"ref":"performance.html","tf":0.008756567425569177}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}},"s":{"docs":{},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}}},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"e":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},"s":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"]":{"docs":{},")":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}}}}}}}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}},")":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}},"p":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}}}},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}},"w":{"docs":{},"o":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.008605851979345954},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}},"b":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},"e":{"docs":{},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}}}},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}},"n":{"docs":{},":":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}},"e":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"e":{"docs":{},"m":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}},"a":{"docs":{},"n":{"docs":{},"k":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"s":{"docs":{},".":{"docs":{},"\"":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}}}}}},"s":{"docs":{},":":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}},"r":{"docs":{},"d":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"u":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"performance.html":{"ref":"performance.html","tf":0.005253940455341506}},")":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}},"p":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.024518388791593695}},"s":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}},"u":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0070052539404553416},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}},"e":{"docs":{},"r":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}}}},"d":{"docs":{},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},":":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}}},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.007194244604316547}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}},"m":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"2":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"3":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}},"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012345679012345678},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}},"}":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}},"h":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186}}}}},"y":{"docs":{},"?":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}},"a":{"docs":{},"y":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}},"n":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}},"i":{"docs":{},"n":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828}}}}},"l":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"performance.html":{"ref":"performance.html","tf":0.010507880910683012}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.014388489208633094},"advanced/interceptors.html":{"ref":"advanced/interceptors.html","tf":0.058823529411764705},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},"e":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"l":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"{":{"2":{"0":{"0":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}},"docs":{}},"docs":{}},"docs":{},":":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.013422818791946308},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.008097165991902834}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002564102564102564},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006711409395973154},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.026804123711340205},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.018218623481781375}}}}}}}}},"i":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.009398496240601503}},"d":{"docs":{"./":{"ref":"./","tf":0.007692307692307693},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014184397163120567}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.03550295857988166},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016778523489932886}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.007692307692307693},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.01775147928994083},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0072992700729927005},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.013824884792626729},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.010121457489878543}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.01282051282051282},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/router.html":{"ref":"basics/router.html","tf":0.017857142857142856},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.02127659574468085},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016778523489932886},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.012048192771084338},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.016129032258064516},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012345679012345678},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.015625},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}},"o":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"ring/ring.html":{"ref":"ring/ring.html","tf":0.025547445255474453},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.0069124423963133645},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016778523489932886}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0364963503649635},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.03571428571428571},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.013157894736842105},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.010121457489878543}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.007518796992481203}}}}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}},"r":{"docs":{},"o":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.006185567010309278}}}}}}}},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.01721170395869191},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.03225806451612903},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.024691358024691357},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.03125}}}}}},":":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.006072874493927126}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}}}}}}},"m":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.022375215146299483},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.03225806451612903},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.012345679012345678},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.03125}}}}},"i":{"docs":{},"l":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}},"r":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}}}}}}},"t":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.015037593984962405}}}}}}},"x":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.009398496240601503}}},"z":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0037593984962406013}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.018218623481781375}}}}}}},"}":{"docs":{"./":{"ref":"./","tf":0.005128205128205128},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010067114093959731}},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616}}}}}},"\"":{"docs":{},"x":{"docs":{},"\"":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.005639097744360902}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"basics/":{"ref":"basics/","tf":0.058823529411764705},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577},"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":3.351890034364261},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"advanced/":{"ref":"advanced/","tf":0.125},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.009615384615384616},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.02877697841726619},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":5.002457002457002},"ring/":{"ref":"ring/","tf":0.06666666666666667},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":3.3454790823211873}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}},",":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}}}}},":":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.007371007371007371}}},"u":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.004608294930875576}}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0036496350364963502},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}}}},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}}}}}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}},"i":{"docs":{},"a":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006711409395973154},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.019230769230769232},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}},"e":{"docs":{},"w":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0051635111876075735},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125}}},"]":{"docs":{},")":{"docs":{},")":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}},"}":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}}}}},"=":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}},">":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0034423407917383822},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839},"coercion/data_spec_coercion.html":{"ref":"coercion/data_spec_coercion.html","tf":0.0078125},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.057692307692307696},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.009216589861751152},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"coercion/clojure_spec_coercion.html":{"ref":"coercion/clojure_spec_coercion.html","tf":0.006172839506172839}}}}},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008928571428571428}}}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.012345679012345678},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}}}}},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},",":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007194244604316547}}},":":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143}}}}},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},".":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}},"b":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"h":{"docs":{},"z":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708},"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}}},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.0070921985815602835}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}}}}}}},":":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014388489208633094}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.02877697841726619}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{},"/":{"docs":{},":":{"docs":{},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.02877697841726619}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"/":{"docs":{},"*":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.02877697841726619}}}}}}}}}}}}}}},"^":{"docs":{},":":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.003355704697986577}}}}}}}}},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004914004914004914}},"^":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}},"%":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009828009828009828}},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}},"+":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.004123711340206186},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}},",":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}},"`":{"docs":{},":":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"`":{"docs":{},",":{"docs":{},"`":{"docs":{},":":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"`":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"`":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002457002457002457}}}}}}}}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"`":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006042296072507553}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.002061855670103093},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.004048582995951417}}}}}}},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"faq.html":{"ref":"faq.html","tf":0.023255813953488372}}}}}}}}}},"|":{"docs":{"basics/route_data_validation.html":{"ref":"basics/route_data_validation.html","tf":0.016494845360824743}}},"j":{"docs":{},"a":{"docs":{},"v":{"docs":{},"a":{"docs":{},".":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0068846815834767644},"coercion/schema_coercion.html":{"ref":"coercion/schema_coercion.html","tf":0.008064516129032258}}}}}}}}}}}}}}}}}},"v":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}}}}},"y":{"docs":{},"e":{"docs":{},"t":{"docs":{},".":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911}}}}},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"coercion/coercion.html":{"ref":"coercion/coercion.html","tf":0.0017211703958691911},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764},"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}},"?":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0018248175182481751}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030211480362537764}}}}}}}},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.002304147465437788}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}},")":{"docs":{"ring/route_data_validation.html":{"ref":"ring/route_data_validation.html","tf":0.0020242914979757085}}}}}}},"\\":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"b":{"docs":{},"b":{"docs":{},"a":{"docs":{},"\\":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{},"\"":{"docs":{},"}":{"docs":{},",":{"docs":{"ring/coercion.html":{"ref":"ring/coercion.html","tf":0.0018796992481203006}}}}}}}}}}}}}}},")":{"docs":{},"b":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}}}}}}}},"~":{"2":{"0":{"0":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{}},"docs":{}},"3":{"0":{"0":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}},"docs":{}},"docs":{}},"docs":{}},"µ":{"docs":{},"s":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0035026269702276708}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.0017513134851138354}}}}}},"length":3364},"corpusTokens":["\"\"}","\"\"})","\"\"})))","\"(constrain","\"(not","\"/\"","\"/\"))","\"/\")))","\"/\"))))","\"/\"})","\"/:company/users/:us","\"/api\"","\"/api\",","\"/api/admin/db\"})","\"/api/admin/ping\",","\"/api/admin/ping\"})","\"/api/admin/users\"})","\"/api/internal/users\"})","\"/api/ipa\")","\"/api/orders/1\")","\"/api/orders/1\"}","\"/api/orders/2\"}","\"/api/orders/:id\"","\"/api/orders/:id\",","\"/api/ping\"","\"/api/ping\")","\"/api/ping\"}","\"/api/ping\"})","\"/api/plus/3\"","\"/api/user/1\"","\"/api/user/1\")","\"/api/user/:id\"","\"/api/user/:id\",","\"/auth/login\")))","\"/favicon.ico\"})","\"/hello\")","\"/invalid\"})","\"/metosin/users/123\")","\"/metosin/users/123\"))","\"/metosin/users/123\"}","\"/metosin/users/ikitommi\")","\"/metosin/users/ikitommi\"))","\"/ping\"","\"/ping\")","\"/ping\"}","\"/ping\"})","\"/pong\"})","\"/workspace/1/1\")))","\"0.1.0","\"0.4.0\"]","\"1\"}","\"1\"})","\"1\"}}","\"123\"},","\"abba\"}","\"abba\"},","\"any\"","\"any\"},","\"clojure.core$identity@15b59b0e\"],","\"clojure.core$identity@15b59b0e\"]}","\"clojure.core$identity@15b59b0e\"]},","\"clojure.core$identity@15b59b0e\"]}}})},","\"clojure.spec.alpha$merge_spec_impl$reify__2124@7461744b\"],","\"forbidden\"}","\"identity\"","\"identity\",","\"identity\"},","\"identity\"}]","\"identity\"}])","\"identity\"}}})},","\"ikitommi\"))}}","\"int\",","\"kosh\"}","\"kosh\"})","\"kosh\"})})))","\"metosin\",","\"middlewar","\"ok\",","\"ok\"}","\"ok\"})","\"ok\"}))","\"pong\"}","\"pong\"})}]","\"tenant1\"","#'reitit.core/rout","#(interleav","#(respond","#:clojure.spec.alpha{:problem","#coercionerror{:schema","#endpoint{:data","#match{:templ","#methods{...}","#methods{:ani","#object[...],","#object[...]}","#object[...]},","#object[clojure.core$ident","#object[clojure.spec.alpha$merge_spec_impl$reify__2124","#object[reitit.coercion$request_coercer$]},","#object[reitit.core$...]","#object[user$handler]}","#partialmatch{:templ","#reitit","#{:admin","#{:adminz}}","#{:adminz}},","#{:adminz}}]","#{:adminz}}}})},","#{:admin}","#{:admin}}","#{:admin}})","#{:admin}}}]]","#{:admin}}}]]]","#{:db","#{:id}","#{:id}}","#{:manager}","#{:manager}}","#{:public","#{:session}","#{:user}","#{route}}","#{})","#{}))","%","%)","%))","%))))","&","'())","'[clojure.set","'[clojure.spec.alpha","'[clojure.spec.test.alpha","'[criterium.cor","'[expound.alpha","'[reitit.coercion","'[reitit.coercion.schema])","'[reitit.coercion.spec])","'[reitit.cor","'[reitit.middlewar","'[reitit.r","'[reitit.ring.coercion","'[reitit.ring.spec","'[reitit.spec","'[reitit.spec])","'[schema.cor","'[spec","'add","'get","'positiveint))","(","(#reitit.spec.problem{:path","()","(*","(*path).","(+","(:api","(:get,","(:id)","(:query,","(:reitit.coercion/request","(:request","(?","([\"/api\"","([\"/get","([...","([request","([request]","(actually,","(and","(app","(assoc","(ataraxy,","(blank?","(cat","(cc/quick","(clojure.core/contains?","(clojure.core/fn","(clojure.core/or","(clojure.spec),","(clojure.spec.alpha/*","(clojure.spec.alpha/?","(clojure.spec.alpha/and","(clojure.spec.alpha/cat","(clojure.spec.alpha/col","(clojure.spec.alpha/key","(clojure.spec.alpha/nil","(clojure.spec.alpha/or","(clojure.string/blank?","(clojure.string/start","(coerc","(coercion/coerc","(coercion/coerce!","(coercion/respons","(coericon)","(coll","(comp","(compiled)","(condp","(conj","(constantli","(core.clj:4739)","(cqr","(data)","(def","(default","(defn","(defprotocol","(done","(dotim","(duct/integrant/macchiato","(effect","(fn","(fnil","(for","(fulli","(handler","(if","(integer?","(just","(let","(like","(mapv","(match","(matches,","(micro","(middleware/cr","(name","(nilabl","(no","(non","(not","(of","(onli","(optimized)","(option","(optional)","(or","(per","(positiveint","(println","(r/match","(r/partial","(r/rout","(r/router","(real","(records,","(reitit/match","(reitit/routes))","(repeat","(requir","(respons","(reverse)","(ring/creat","(ring/get","(ring/r","(ring/rout","(rout","(router","(s/coll","(s/constrain","(s/def","(s/explain","(s/key","(s/merg","(s/valid?","(schema","(seq","(set!","(set/subset?","(some","(start","(static","(stest/instru","(str","(updat","(via","(which","(wildcard","(wip)","(with","({:path",")benchmark","+","...","...,","...])","/:user","/:version/statu","/api/command/add","/api/user/:id:","/bulk/:bulk","/public/*path","0]}),","0x15b59b0e","0x7461744b","1","1.9m","100","1000)","1000):","1000]","10}})","123}}","16","1]","2","2,5","200","200,","24x","256","2]]}","2})","2},","2}})","3","3.2","300","312m","3]]","4","400,","403,","404,","405,","406,","50%","50+","500,","500x","530","6","6))\"},","6},","6}}",":","::acc","::admin]","::admin}]","::coerc","::compani","::db]","::db]]","::db]}","::db}]","::dev","::ipa)","::kikka)","::mw/coerc","::order","::path","::ping","::ping)","::ping))","::ping]","::ping]]","::ping}","::ping}]","::ping}]]","::plu","::plus)","::pong}]]","::role","::roles)]","::rs/default","::rs/explain","::rs/respons","::spec/raw","::tenant1])","::user","::user)","::user))","::user]]]))","::users]","::users]]))","::users}","::wrap2","::wrap3","::zone",":a",":admin",":admin]]}",":adminz,",":admin}",":api)]}",":api]]",":api]]}",":append,",":arg",":auth/login]",":auth/recovery]",":bodi",":body,",":body.",":body]}}",":child",":clojure.spec.alpha/spec",":clojure.spec.alpha/valu",":coerc",":coercion",":coercion)",":command",":compil",":compile.",":conflict",":data",":db",":db]]",":debug",":debug]))})))",":delet",":delete,",":delete]]",":descript",":dev",":displac",":error",":expand",":form,",":get",":get,",":handler",":handler)})",":handler]}",":head,",":header",":in",":intern",":internal}",":internal})",":into",":let",":linear",":lookup",":manager}",":manager})",":manager},",":method",":middlewar",":mix",":name",":name)))",":not",":opt",":options,",":opts)]",":param",":paramet",":parameters.",":patch,",":path",":path)",":path.",":path]",":post",":post)]]",":post,",":pred",":prepend,",":problem",":provides.",":public",":public}",":put,",":put.",":queri",":query,",":reitit.coercion/request",":reitit.coercion/respons",":reitit.middleware/transform",":reitit.spec/arg)",":reitit.spec/default",":reitit.spec/handl",":reitit.spec/handler])",":reitit.spec/handler],",":reitit.spec/path",":reitit.spec/path:",":reitit.spec/raw",":replac",":req",":request",":requir",":respons",":responses)",":result",":role",":rout",":router",":schema,",":scope",":segment",":singl",":spec",":type",":uri",":user",":user/ord",":user/ping}",":user/ping}]",":user/rol",":user/role:",":user/role],",":user/roles)),",":user/roles:",":user/tenant1",":user/tenant1]",":user/us",":user/user]",":user/user}",":user/user},",":user/user}]]",":val",":valid",":valu",":via",":workspace/page]]))",":wrap",":wrap.",":x)",":y)",":z))]",":zone",":zone)]",";",";;","=","=>",">",">>","?arg","?wrap.","[\"\"","[\"/:company/users/:us","[\"/:user","[\"/:version/status\"]])","[\"/add","[\"/admin\"","[\"/api\"","[\"/api/:users\"","[\"/api/:version/ping\"]]","[\"/api/admin/db\"","[\"/api/admin/users\"","[\"/api/internal/users\"","[\"/api/orders/:id\"","[\"/api/ping\"","[\"/api/user/:id\"","[\"/auth/recovery/token/:token\"","[\"/bulk/:bulk","[\"/db\"","[\"/dev","[\"/internal\"","[\"/ping\"","[\"/ping\"]","[\"/plus/:z\"","[\"/pong\"","[\"/pong\"]]","[\"/public\"","[\"/public/*path\"]","[\"/user/:id\"","[\"/users\"","[\"/workspace/:project/:page\"","[\"pong\"]]])","[\"tenant1\"","[#(wrap","[%]","[...","[0]","[1","[1]","[3","[::acc]}]","[::admin],","[::admin]}","[::api","[::api]","[::api]}","[::compani","[::db]","[::mw/coerc","[::roles]","[::roles])","[::zone])","[:api","[:command","[:handler]","[:handler],","[:handler]}),","[:reitit.spec/default","[:reitit.spec/nam","[:request","[:respons","[:rout","[:routes]","[:user/p","[:user/rol","[:user/roles],","[[\"/api\"","[[\"/api/admin\"","[[\"/api/ping\"","[[\"/api/public/ping\"","[[\"/auth/login\"","[[\"/ping\"","[[\"/ping\"]","[[\"/users/:us","[[#object[user$wrap]","[[:queri","[[type","[[wrap","[[wrap3","[]","[])","[]))","[],","[]}),","[]}}]]","[_","[_]","[action","[add","[coercer","[coercion","[expound","[get","[handler","[handler]","[interceptor]}}])","[match","[method","[metosin/reitit","[parameters]}]","[path","[path]","[request]","[requir","[respons","[rrc/coerc","[thi","[this])","[total","[wrap","[wrap2","[zone","[{:key","\\\"abba\\\"))\"},","^:replac","^^^^^^","^^^^^^^","`:admin`,`:manager`","`:user/roles`","`lein","`reitit.coercion/coercion`","`reitit/router)","abil","about.","abstract","acc","accept","access","accident","accumul","accur","action","actual","ad","adapt","add","admin}}]]","admin}}]]]))","adopt","advanc","again,","again:","against","against.","againt","algorithm,","algorithms,","allow","allowed.","also,","alternative,","alway","and/or","anonym","anoth","another.","anything,","any},","api","app","app)","app:","appli","applic","applied.","apply.","approaches,","arbitrari","arg","args.","argument","arguments.","arguments:","ariti","around","ask","async","at:","ataraxi","attach","attacht","author","authorizationmiddlewar","avail","average,","back","back.","base","baselin","basic","befor","behavior","behind","below","bench","benchmark.","best","better","better,","better.","between","bi","bide","bidi,","blown","bonus,","bootstrapping:","both","box","box.","bubblin'","build","built","busi","but,","cach","cache:","call","callback.","case","case,","case.","catch","cc])","chain","chain,","channel","cheng","child","choos","ci","class","cleanli","client","clj","clojur","clojure(script)","clojure(script),","clojure,","clojure.core/ex","clojure.core/fn?,","clojure.core/string?","clojure.lang.exceptioninfo:","clojure.spec","clojure.spec)","clojure.spec.alpha/explain","clojure.specs.","clojurescript,","clojurian","closur","co","code","code,","coerc","coerce!","coerced.","coercer","coercers.","coercers}))","coercion","coercion)","coercion,","coercion.","coercion/compil","coercion:","coercion])","colect","command","common","commun","compar","compil","compilation,","compilation.","compiled.","compiler,","compilerexcept","compiling:","compiling:(/users/tommi/projects/metosin/reitit/test/cljc/reitit/spec_test.cljc:151:1)","compojur","components.","compos","composit","comput","configur","conflicit","conflict","conflicts!)","conflicts.","conflicts:","conform","conforming,","conj","consist","constant,","contain","contribut","control","core","core):","cores:","correct","correctly:","cqr","creat","created,","created.","creation","creation:","currently,","custom","data","data)","data,","data.","data:","db","db)","debug","decid","declar","default","default,","defaults:","defin","defined).","defined,","defined.","defined:","definit","definitions.","degrade.","demonstr","depend","dependeci","depends.","descript","design,","destructur","detail","details.","detect","dev","develop","differ","differences:","differenti","direct","disabl","discussions,","do","doc","doesn't","don't","done","done.","done:","downsid","driven","duct","dynam","e.g.","e/expound","e])","easi","easier","effec","effect","element","enabl","endpoint","endpoint.","endpoints.","enforc","enough","ensur","entri","environment.","error","error.","error:","errors.","especi","etc.","etc.)","even","ex","exact","exampl","except","exceptioninfo","execut","exist","expand","expans","expect","explain","explicit","explicitli","expound","expound/printer)","expound])","extend","extens","extern","extra","extract","fail","failed...","failed:","fails,","fallback","fals","false)","faq","fast","fast),","fast,","fast.","faster","faster.","fastest","featur","feature,","felt","few","first","fix","flatten","flattened:","fn?","follow","following:","form","format","found","found,","found.","free","frequent","full","fulli","fun","function","function,","function.","functions,","gb","gener","get","ghz","given","go.","go:","good","good,","good:","great","guard","guide.","handl","handler","handler)))","handler.","handler/middlewar","handler:","handler]","handler])","handler])))","handler]]]]","handlers,","handler}","handler}]","handler}])))","handler}]]","handler}]]])))","handler}}]]","handler}}]])))","handler}}]]]","handler}}]]])))","hard.","harder","hash","have","haven't","heart","help","helper","here","here'","here,","here.","higher","hoc","hold","hook","hooks.","hopefulli","http","i7","id","id\"","id\",","id\"]","id)","id))","id)))","id))))","id/ord","id/orders\"]","id]","id]))","id]]))","idea","ident","identifier:","identity]","identity]}","identity}]","identity}}]]","identity}}]]))","id}","id},","ignor","ignored.","immut","implement","implementation.","implicit","implicitli","in:","infinit","info","inform","information:","initi","inject","injectuserintorequestmiddlewar","inlin","inspect","instanc","instead","instrument","int","int,","int?}}},","int?}}}]","intel","interceptor","interceptor)","interceptor))","interceptor]","interceptors.","interest","intern","interpet","introduct","int}}},","invalid","invalid:","inventoried.","inventories,","invok","issu","it'","it,","it?","itself","java.lang.string,","jvm","kb","keechma","key","key,","key.","key:","keys)","keys,","keys:","keyset.","keyword","kind","know","know.","known","l2","l3","languages,","larg","large!","latter","leaf","less","let'","level","level,","lib","librari","library.","library?","libs,","libs.","life","life)","link","list","local","log","long","look","lookup","lookup,","lot","lot.","lupapiste.","macbook","macbookpro11,3","macro","magical.","magnitud","magnitude.","main","make","manag","mani","manual","map","map.","maps)","match","match)","match))))","match,","match.","match:","match?","matched)","matched),","matched,","matches,","matter","matter?","mb","mean","measur","measure?","memory:","merg","merge.","message.","meta","method","method.","methods.","mid","middlewar","middleware)","middleware,","middleware.","middleware/interceptor","middleware:","middleware])","middleware]}","middleware]}})))","mind.","miss","mistakes.","mix","mode?","mode?]","model","models.","modular","modules:","more","more.","mount","mount.\"","move","much","multimethod","multipl","mutabl","mw","name","name!","name.","name:","name]","names:","namespac","nearli","need","nest","new","nil","nil).","nil)]])","nil,","nil.","nil:","nil]","node.j","non","none","normal","not.","notabl","note","note:","nothing.","nothing.\"","now","ns","number","of:","ok","on","on:","once,","opaqu","opensensor","ops/sec","opt","optim","optin","option","option,","optionally,","options.","options:","opts)]","opts]","order","order\"","order.","order]]","order]}}])","origin","otherwis","ourselv","out","out*","over","overrid","overridden","packag","param","paramet","parameter:","parameters.","parameters:","params]))","params]}}","params}},","params}}]","paremet","pars","part","partial","partialmatch","partialmatch,","pass","path","path)","path)]","path.","path])","pedest","pedestal).","pedestal.","penalty.","per","perf","perf.","perfect.","perform","performance,","performance.","performance:","pick","place.","pleas","plu","pluggabl","plumat","port","pos?","positiveint","positiveint)\"},","positiveint}}}","possibl","power","powerful.","pre","precompute/compil","predicate:","prefix","present","present:","pretti","primitives!","principl","print","println","pro","problem.","problem:","problems.","process","processing,","processing.","processor","processors:","produc","programmatically:","progress","project:","proof","protocol","protocol)","protocol,","protocol.","protocol:","provid","public","pull","purpose:","push","qualifi","queri","question","r","r])","raise))))))","raise)))))))})","raise]","rational","raw","re","read","readi","readme:","real","realistic.","realli","really,","reason","reasoning:","record","recurs","registri","regress","rehost","reitit","reitit,","reitit.coercion.schema/coercion","reitit.coercion.spec/coercion","reitit.coercion/coerce!","reitit.coercion/coercion","reitit.coercion/compil","reitit.cor","reitit.core/expand","reitit.core/expand)","reitit.core/match","reitit.core/rout","reitit.core/router:","reitit.core/throw","reitit.middleware/intomiddlewar","reitit.middleware/middlewar","reitit.ring.coercion:","reitit.ring.spec/valid","reitit.ring/get","reitit.ring/rout","reitit.spec","reitit.spec/valid","reitit/conflict","reitit/expand","rel","relev","render","repl","repl`","repo","request","request)","request)))","request)))))","request))))})","request.","request:","request}]","requir","required)","resolut","resolution)","resolv","respond","respons","response))","response)))","response.","response:","response]","responses)","responses,","responses:","responses]}","rest","rest(ish)","result","results,","results:","resut","retriev","return","returned,","returned:","reus","reuse)","revers","reverse)})))","rewritten","ring","ring,","ring/creat","ring:","ring])","roadmap","role","roles)))","roles:","roles]","roles]}","roles]}]","roles]}]]","roles]}})))","root","rout","route(s)","route))))","route,","route.","route:","router","router)","router):","router,","router.","router:","routers.","routes)","routes):","routes,","routes.","routes:","routing)","routing,","routing.","routing:","rrc/coerc","rrc])","rrs/valid","rrs])","rs/valid","rs])","rule","run","runner?","runtim","s/*explain","s/int","s/int}","s/int}}","s/int}}}]","s/int}}}]))","s/key","s/str","s])","same","sampl","satisfi","scatter","scenario","scene","schema","schema:","scientif","scope","search","second","see","segment","select","separ","separately:","sequenti","sequential)","serv","set","set,","set])","setup:","sever","shape","shine","ship","show","side","sight","silent","simpl","singl","site","size","slack.","slow,","slower","slowest","small","snappi","snapshot\"]","so,","someth","sources.","spec","spec!","spec!})","spec.","spec/int?)","spec/string?)","spec:","spec])","special","specifi","specs.","speed:","stabl","start","static","static,","step","steps.","stest])","still","sting","str","str)","str)})","string","string?","string?,","strings:","structur","str})))","stuctur","stuffm?","style","style)","sub","submap.","success","successful","successfuli","suitabl","super","support","swagger","syntax","syntax.","system.","tabl","table.","take","taken","target","test","tests,","thank","them.","thing","things.\"","third","this:","three","throw","thrown,","thrown:","thu","time","time),","time,","time.","tip","to,","to:","togeth","too).","too.","tool","tools\"","tools.spec","tools])])","top","total","total}}))})","total}}))}}]]","toward","transform","tree","tree,","tree.","tree:","trees,","trees.","tri","trie","true","trust","turn","two","type","un","undelay","under","under:","understand","unmount","unreachable.","until","unwrap","us","used.","user","user\"","user]","user]}}]","val:","valid","validation,","validation.","valu","vector","vector.","verifi","version:","via","view","view,","view]))","view},","want","want,","way","way.","welcom","welcome.","well,","whole","why?","wildcard","with?","within","without","work","working.","wrap","wrap2","wrap3","wrap})","wrap}))","written","wrong","yet.","yield","zero","zone","zone)","{\"x\"","{200","{::middleware/transform","{::role","{::rs/explain","{:coercion","{:compani","{:compil","{:conflict","{:data","{:get","{:handler","{:i","{:id","{:interceptor","{:middlewar","{:name","{:not","{:path","{:post","{:problem","{:queri","{:request","{:role","{:schema","{:spec","{:statu","{:total","{:uri","{:user","{:valid","{:x","{:z","{:zone","{method","{rout","{}","{})","|","~200","~300","µs","µs."],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"Introduction","keywords":"","body":"Introduction\nReitit is a small Clojure(Script) library for data-driven routing.\n\nSimple data-driven route syntax\nRoute conflict resolution\nFirst-class route data\nBi-directional routing\nPluggable coercion (schema & clojure.spec)\nExtendable\nModular\nFast\n\nThe following higher-level routers are also available as separate modules:\n\nring-router with data-driven middleware\nhttp-router with Pedestal-style Interceptors (WIP)\ncljs-router with Keechma-style Controllers (WIP)\n\nTo use Reitit, add the following dependecy to your project:\n[metosin/reitit \"0.1.0-SNAPSHOT\"]\n\nOptionally, the parts can be required separately:\n[metosin/reitit-core \"0.1.0-SNAPSHOT\"] ; just the router\n[metosin/reitit-ring \"0.1.0-SNAPSHOT\"] ; ring-router\n[metosin/reitit-spec \"0.1.0-SNAPSHOT\"] ; spec coercion\n[metosin/reitit-schema \"0.1.0-SNAPSHOT\"] ; schema coercion\n\nFor discussions, there is a #reitit channel in Clojurians slack.\nExamples\nSimple router\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [[\"/api/ping\" ::ping]\n [\"/api/orders/:id\" ::order-by-id]]))\n\nRouting:\n(r/match-by-path router \"/api/ipa\")\n; nil\n\n(r/match-by-path router \"/api/ping\")\n; #Match{:template \"/api/ping\"\n; :data {:name ::ping}\n; :result nil\n; :path-params {}\n; :path \"/api/ping\"}\n\n(r/match-by-path router \"/api/orders/1\")\n; #Match{:template \"/api/orders/:id\"\n; :data {:name ::order-by-id}\n; :result nil\n; :path-params {:id \"1\"}\n; :path \"/api/orders/1\"}\n\nReverse-routing:\n(r/match-by-name router ::ipa)\n; nil\n\n(r/match-by-name router ::ping)\n; #Match{:template \"/api/ping\"\n; :data {:name ::ping}\n; :result nil\n; :path-params {}\n; :path \"/api/ping\"}\n\n(r/match-by-name router ::order-by-id)\n; #PartialMatch{:template \"/api/orders/:id\"\n; :data {:name :user/order-by-id}\n; :result nil\n; :path-params nil\n; :required #{:id}}\n\n(r/partial-match? (r/match-by-name router ::order-by-id))\n; true\n\n(r/match-by-name router ::order-by-id {:id 2})\n; #Match{:template \"/api/orders/:id\",\n; :data {:name ::order-by-id},\n; :result nil,\n; :path-params {:id 2},\n; :path \"/api/orders/2\"}\n\nRing-router\nRing-router adds support for :handler functions, :middleware and routing based on :request-method. It also supports pluggable parameter coercion (clojure.spec), data-driven middleware, route and middleware compilation, dynamic extensions and more.\n(require '[reitit.ring :as ring])\n\n(def handler [_]\n {:status 200, :body \"ok\"})\n\n(defn wrap [handler id]\n (fn [request]\n (update (handler request) :wrap (fnil conj '()) id)))\n\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [[wrap :api]]}\n [\"/ping\" {:get handler\n :name ::ping}]\n [\"/admin\" {:middleware [[wrap :admin]]}\n [\"/users\" {:get handler\n :post handler}]]])))\n\nRouting:\n(app {:request-method :get, :uri \"/api/admin/users\"})\n; {:status 200, :body \"ok\", :wrap (:api :admin}\n\n(app {:request-method :put, :uri \"/api/admin/users\"})\n; nil\n\nReverse-routing:\n(require '[reitit.core :as r])\n\n(-> app (ring/get-router) (r/match-by-name ::ping))\n; #Match{:template \"/api/ping\"\n; :data {:middleware [[#object[user$wrap] :api]]\n; :get {:handler #object[user$handler]}\n; :name ::ping}\n; :result #Methods{...}\n; :path-params nil\n; :path \"/api/ping\"}\n\n"},"basics/":{"url":"basics/","title":"Basics","keywords":"","body":"Basics\n\nRoute Syntax\nRouter\nPath-based Routing\nName-based Routing\nRoute Data\nRoute Data Validation\nRoute Conflicts\n\n"},"basics/route_syntax.html":{"url":"basics/route_syntax.html","title":"Route Syntax","keywords":"","body":"Route Syntax\nRoutes are defined as vectors of String path and optional (non-sequential) route argument child routes.\nRoutes can be wrapped in vectors and lists and nil routes are ignored.\nPaths can have path-parameters (:id) or catch-all-parameters (*path).\nExamples\nSimple route:\n[\"/ping\"]\n\nTwo routes:\n[[\"/ping\"]\n [\"/pong\"]]\n\nRoutes with route arguments:\n[[\"/ping\" ::ping]\n [\"/pong\" {:name ::pong}]]\n\nRoutes with path parameters:\n[[\"/users/:user-id\"]\n [\"/api/:version/ping\"]]\n\nRoute with catch-all parameter:\n[\"/public/*path\"]\n\nNested routes:\n[\"/api\"\n [\"/admin\" {:middleware [::admin]}\n [\"\" ::admin]\n [\"/db\" ::db]]\n [\"/ping\" ::ping]]\n\nSame routes flattened:\n[[\"/api/admin\" {:middleware [::admin], :name ::admin}]\n [\"/api/admin/db\" {:middleware [::admin], :name ::db}]\n [\"/api/ping\" {:name ::ping}]]\n\nGenerating routes\nAs routes are just data, it's easy to create them programmatically:\n(defn cqrs-routes [actions dev-mode?]\n [\"/api\" {:interceptors [::api ::db]}\n (for [[type interceptor] actions\n :let [path (str \"/\" (name interceptor))\n method (condp = type\n :query :get\n :command :post)]]\n [path {method {:interceptors [interceptor]}}])\n (if dev-mode? [\"/dev-tools\" ::dev-tools])])\n\n(cqrs-routes\n [[:query 'get-user]\n [:command 'add-user]\n [:command 'add-order]]\n false)\n; [\"/api\" {:interceptors [::api ::db]}\n; ([\"/get-user\" {:get {:interceptors [get-user]}}]\n; [\"/add-user\" {:post {:interceptors [add-user]}}]\n; [\"/add-order\" {:post {:interceptors [add-order]}}])\n; nil]\n\n"},"basics/router.html":{"url":"basics/router.html","title":"Router","keywords":"","body":"Router\nRoutes are just data and for routing, we need a router instance satisfying the reitit.core/Router protocol. Routers are created with reitit.core/router function, taking the raw routes and optionally an options map.\nThe Router protocol:\n(defprotocol Router\n (router-name [this])\n (routes [this])\n (options [this])\n (route-names [this])\n (match-by-path [this path])\n (match-by-name [this name] [this name params]))\n\nCreating a router:\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [[\"/api\"\n [\"/ping\" ::ping]\n [\"/user/:id\" ::user]]]))\n\nName of the created router:\n(r/router-name router)\n; :mixed-router\n\nThe flattened route tree:\n(r/routes router)\n; [[\"/api/ping\" {:name :user/ping}]\n; [\"/api/user/:id\" {:name :user/user}]]\n\nBehind the scenes\nWhen router is created, the following steps are done:\n\nroute tree is flattened\nroute arguments are expanded (via reitit.core/Expand protocol) and optionally coerced\nroute conflicts are resolved\nactual router implementation is selected and created\noptionally route data gets compiled\n\n"},"basics/path_based_routing.html":{"url":"basics/path_based_routing.html","title":"Path-based Routing","keywords":"","body":"Path-based Routing\nPath-based routing is done using the reitit.core/match-by-path function. It takes the router and path as arguments and returns one of the following:\n\nnil, no match\nPartialMatch, path matched, missing path-parameters (only in reverse-routing)\nMatch, exact match\n\nGiven a router:\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [[\"/api\"\n [\"/ping\" ::ping]\n [\"/user/:id\" ::user]]]))\n\nNo match returns nil:\n(r/match-by-path router \"/hello\")\n; nil\n\nMatch provides the route information:\n(r/match-by-path router \"/api/user/1\")\n; #Match{:template \"/api/user/:id\"\n; :data {:name :user/user}\n; :path \"/api/user/1\"\n; :result nil\n; :path-params {:id \"1\"}}\n\n"},"basics/name_based_routing.html":{"url":"basics/name_based_routing.html","title":"Name-based Routing","keywords":"","body":"Name-based (reverse) Routing\nAll routes which have :name route data defined, can also be matched by name.\nGiven a router:\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [[\"/api\"\n [\"/ping\" ::ping]\n [\"/user/:id\" ::user]]]))\n\nListing all route names:\n(r/route-names router)\n; [:user/ping :user/user]\n\nNo match returns nil:\n(r/match-by-name router ::kikka)\nnil\n\nMatching a route:\n(r/match-by-name router ::ping)\n; #Match{:template \"/api/ping\"\n; :data {:name :user/ping}\n; :result nil\n; :path-params {}\n; :path \"/api/ping\"}\n\nIf not all path-parameters are set, a PartialMatch is returned:\n(r/match-by-name router ::user)\n; #PartialMatch{:template \"/api/user/:id\",\n; :data {:name :user/user},\n; :result nil,\n; :path-params nil,\n; :required #{:id}}\n\n(r/partial-match? (r/match-by-name router ::user))\n; true\n\nWith provided path-parameters:\n(r/match-by-name router ::user {:id \"1\"})\n; #Match{:template \"/api/user/:id\"\n; :data {:name :user/user}\n; :path \"/api/user/1\"\n; :result nil\n; :path-params {:id \"1\"}}\n\nThere is also a exception throwing version:\n(r/match-by-name! router ::user)\n; ExceptionInfo missing path-params for route /api/user/:id: #{:id}\n\n"},"basics/route_data.html":{"url":"basics/route_data.html","title":"Route Data","keywords":"","body":"Route Data\nRoute data is the heart of this library. Routes can have any data attachted to them. Data is interpeted either by the client application or the Router via it's :coerce and :compile hooks. Together with clojure.spec -validation this enables co-existence of both adaptive and principled components.\nRoutes can have a non-sequential route argument that is expanded into route data map when a router is created.\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [[\"/ping\" ::ping]\n [\"/pong\" identity]\n [\"/users\" {:get {:roles #{:admin}\n :handler identity}}]]))\n\nThe expanded route data can be retrieved from a router with routes and is returned with match-by-path and match-by-name in case of a route match.\n(r/routes router)\n; [[\"/ping\" {:name :user/ping}]\n; [\"/pong\" {:handler identity]}\n; [\"/users\" {:get {:roles #{:admin}\n; :handler identity}}]]\n\n(r/match-by-path router \"/ping\")\n; #Match{:template \"/ping\"\n; :data {:name :user/ping}\n; :result nil\n; :path-params {}\n; :path \"/ping\"}\n\n(r/match-by-name router ::ping)\n; #Match{:template \"/ping\"\n; :data {:name :user/ping}\n; :result nil\n; :path-params {}\n; :path \"/ping\"}\n\nNested route data\nFor nested route trees, route data is accumulated recursively from root towards leafs using meta-merge. Default behavior for colections is :append, but this can be overridden to :prepend, :replace or :displace using the target meta-data.\nAn example router with nested data:\n(def router\n (r/router\n [\"/api\" {:interceptors [::api]}\n [\"/ping\" ::ping]\n [\"/admin\" {:roles #{:admin}}\n [\"/users\" ::users]\n [\"/db\" {:interceptors [::db]\n :roles ^:replace #{:db-admin}}]]]))\n\nResolved route tree:\n(r/routes router)\n; [[\"/api/ping\" {:interceptors [::api]\n; :name :user/ping}]\n; [\"/api/admin/users\" {:interceptors [::api]\n; :roles #{:admin}\n; :name ::users} nil]\n; [\"/api/admin/db\" {:interceptors [::api ::db]\n; :roles #{:db-admin}}]]\n\nExpansion\nBy default, reitit/Expand protocol is used to expand the route arguments. It expands keywords into :name and functions into :handler key in the route data map. It's easy to add custom expanders and one can chenge the whole expand implementation via router options.\n(def router\n (r/router\n [[\"/ping\" ::ping]\n [\"/pong\" identity]\n [\"/users\" {:get {:roles #{:admin}\n :handler identity}}]]))\n\n(r/routes router)\n; [[\"/ping\" {:name :user/ping}]\n; [\"/pong\" {:handler identity]}\n; [\"/users\" {:get {:roles #{:admin}\n; :handler identity}}]]\n\n(r/match-by-path router \"/ping\")\n; #Match{:template \"/ping\"\n; :data {:name :user/ping}\n; :result nil\n; :path-params {}\n; :path \"/ping\"}\n\n"},"basics/route_data_validation.html":{"url":"basics/route_data_validation.html","title":"Route Data Validation","keywords":"","body":"Route Data Validation\nRoute data can be anything, so it's easy to do mistakes. Accidentally using a :role key instead of :roles might render the whole routing app without any authorization in place.\nTo fail fast, we could use the custom :coerce and :compile hooks to apply data validation and throw exceptions on first sighted problem.\nBut there is a better way. Router also has a :validation hook to validate the whole route tree after it's successfuly compiled. It expects a 2-arity function routes opts => () that can side-effect in case of validation errors.\nclojure.spec\nNamespace reitit.spec contains specs for main parts of reitit.core and a helper function validate-spec! that runs spec validation for all route data and throws an exception if any errors are found.\nA Router with invalid route data:\n(require '[reitit.core :as r])\n\n(r/router\n [\"/api\" {:handler \"identity\"}])\n; #object[reitit.core$...]\n\nFails fast with clojure.spec validation turned on:\n(require '[reitit.spec :as rs])\n\n(r/router\n [\"/api\" {:handler \"identity\"}]\n {:validate rs/validate-spec!})\n; CompilerException clojure.lang.ExceptionInfo: Invalid route data:\n;\n; -- On route -----------------------\n;\n; \"/api\"\n;\n; In: [:handler] val: \"identity\" fails spec: :reitit.spec/handler at: [:handler] predicate: fn?\n;\n; {:problems (#reitit.spec.Problem{:path \"/api\", :scope nil, :data {:handler \"identity\"}, :spec :reitit.spec/default-data, :problems #:clojure.spec.alpha{:problems ({:path [:handler], :pred clojure.core/fn?, :val \"identity\", :via [:reitit.spec/default-data :reitit.spec/handler], :in [:handler]}), :spec :reitit.spec/default-data, :value {:handler \"identity\"}}})}, compiling: ...\n\nCustomizing spec validation\nrs/validate-spec! reads the following router options:\n\n\n\nkey\ndescription\n\n\n\n\n:spec\nthe spec to verify the route data (default ::rs/default-data)\n\n\n::rs/explain\ncustom explain function (default clojure.spec.alpha/explain-str)\n\n\n\nNOTE: clojure.spec implicitly validates all values with fully-qualified keys if specs exist with the same name.\nBelow is an example of using expound to pretty-print route data problems.\n(require '[clojure.spec.alpha :as s])\n(require '[expound.alpha :as e])\n\n(s/def ::role #{:admin :manager})\n(s/def ::roles (s/coll-of ::role :into #{}))\n\n(r/router\n [\"/api\" {:handler identity\n ::roles #{:adminz}}]\n {::rs/explain e/expound-str\n :validate rs/validate-spec!})\n; CompilerException clojure.lang.ExceptionInfo: Invalid route data:\n;\n; -- On route -----------------------\n;\n; \"/api\"\n;\n; -- Spec failed --------------------\n;\n; {:handler ..., :user/roles #{:adminz}}\n; ^^^^^^^\n;\n; should be one of: `:admin`,`:manager`\n;\n; -- Relevant specs -------\n;\n; :user/role:\n; #{:admin :manager}\n; :user/roles:\n; (clojure.spec.alpha/coll-of :user/role :into #{})\n; :reitit.spec/default-data:\n; (clojure.spec.alpha/keys\n; :opt-un\n; [:reitit.spec/name :reitit.spec/handler])\n;\n; -------------------------\n; Detected 1 error\n;\n; {:problems (#reitit.spec.Problem{:path \"/api\", :scope nil, :data {:handler #object[clojure.core$identity 0x15b59b0e \"clojure.core$identity@15b59b0e\"], :user/roles #{:adminz}}, :spec :reitit.spec/default-data, :problems #:clojure.spec.alpha{:problems ({:path [:user/roles], :pred #{:admin :manager}, :val :adminz, :via [:reitit.spec/default-data :user/roles :user/role], :in [:user/roles 0]}), :spec :reitit.spec/default-data, :value {:handler #object[clojure.core$identity 0x15b59b0e \"clojure.core$identity@15b59b0e\"], :user/roles #{:adminz}}}})}, compiling: ...\n\nExplicitly requiring a ::roles key in a route data:\n(r/router\n [\"/api\" {:handler identity}]\n {:spec (s/merge (s/keys :req [::roles]) ::rs/default-data)\n ::rs/explain e/expound-str\n :validate rs/validate-spec!})\n; CompilerException clojure.lang.ExceptionInfo: Invalid route data:\n; \n; -- On route -----------------------\n; \n; \"/api\"\n; \n; -- Spec failed --------------------\n; \n; {:handler\n; #object[clojure.core$identity 0x15b59b0e \"clojure.core$identity@15b59b0e\"]}\n; \n; should contain key: `:user/roles`\n; \n; | key | spec |\n; |-------------+----------------------------------------|\n; | :user/roles | (coll-of #{:admin :manager} :into #{}) |\n; \n; \n; \n; -------------------------\n; Detected 1 error\n; \n; {:problems (#reitit.spec.Problem{:path \"/api\", :scope nil, :data {:handler #object[clojure.core$identity 0x15b59b0e \"clojure.core$identity@15b59b0e\"]}, :spec #object[clojure.spec.alpha$merge_spec_impl$reify__2124 0x7461744b \"clojure.spec.alpha$merge_spec_impl$reify__2124@7461744b\"], :problems #:clojure.spec.alpha{:problems ({:path [], :pred (clojure.core/fn [%] (clojure.core/contains? % :user/roles)), :val {:handler #object[clojure.core$identity 0x15b59b0e \"clojure.core$identity@15b59b0e\"]}, :via [], :in []}), :spec #object[clojure.spec.alpha$merge_spec_impl$reify__2124 0x7461744b \"clojure.spec.alpha$merge_spec_impl$reify__2124@7461744b\"], :value {:handler #object[clojure.core$identity 0x15b59b0e \"clojure.core$identity@15b59b0e\"]}}})}, compiling:(/Users/tommi/projects/metosin/reitit/test/cljc/reitit/spec_test.cljc:151:1)\n\n"},"basics/route_conflicts.html":{"url":"basics/route_conflicts.html","title":"Route Conflicts","keywords":"","body":"Route Conflicts\nMost routing libraries allow conflicting paths within a router. On lookup, the first match is used making rest of the matching routes effecively unreachable. This is not good, especially if route tree is merged from multiple sources.\nReitit resolves this by running explicit conflicit resolution when a Router is created. Conflicting routes are passed into a :conflicts callback. Default implementation throws ex-info with a descriptive message.\nExamples router with conflicting routes:\n(require '[reitit.core :as r])\n\n(def routes\n [[\"/ping\"]\n [\"/:user-id/orders\"]\n [\"/bulk/:bulk-id\"]\n [\"/public/*path\"]\n [\"/:version/status\"]])\n\nBy default, ExceptionInfo is thrown:\n(r/router routes)\n; CompilerException clojure.lang.ExceptionInfo: Router contains conflicting routes:\n;\n; /:user-id/orders\n; -> /public/*path\n; -> /bulk/:bulk-id\n;\n; /bulk/:bulk-id\n; -> /:version/status\n;\n; /public/*path\n; -> /:version/status\n;\n\nJust logging the conflicts:\n(r/router\n routes\n {:conflicts (comp println reitit/conflicts-str)})\n; Router contains conflicting routes:\n;\n; /:user-id/orders\n; -> /public/*path\n; -> /bulk/:bulk-id\n;\n; /bulk/:bulk-id\n; -> /:version/status\n;\n; /public/*path\n; -> /:version/status\n;\n\n"},"coercion/":{"url":"coercion/","title":"Coercion","keywords":"","body":"Coercion\n\nCoercion Explained\nPlumatic Schema\nClojure.spec\nData-specs\n\n"},"coercion/coercion.html":{"url":"coercion/coercion.html","title":"Coercion Explained","keywords":"","body":"Coercion Explained\nCoercion is a process of transforming parameters (and responses) from one format into another. Reitit separates routing and coercion into two separate steps.\nBy default, all wildcard and catch-all parameters are parsed as Strings:\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [\"/:company/users/:user-id\" ::user-view]))\n\nMatch with the parsed :params as Strings:\n(r/match-by-path r \"/metosin/users/123\")\n; #Match{:template \"/:company/users/:user-id\",\n; :data {:name :user/user-view},\n; :result nil,\n; :path-params {:company \"metosin\", :user-id \"123\"},\n; :path \"/metosin/users/123\"}\n\nTo enable parameter coercion, the following things need to be done:\n\nDefine a Coercion for the routes\nDefine types for the parameters\nCompile coercers for the types\nApply the coercion\n\nDefine Coercion\nreitit.coercion/Coercion is a protocol defining how types are defined, coerced and inventoried.\nReitit ships with the following coercion modules:\n\nreitit.coercion.schema/coercion for plumatic schema\nreitit.coercion.spec/coercion for both clojure.spec and data-specs\n\nCoercion can be attached to route data under :coercion key. There can be multiple Coercion implementations within a single router, normal scoping rules apply.\nDefining parameters\nRoute parameters can be defined via route data :parameters. It has keys for different type of parameters: :query, :body, :form, :header and :path. Syntax for the actual parameters depends on the Coercion implementation.\nExample with Schema path-parameters:\n(require '[reitit.coercion.schema])\n(require '[schema.core :as s])\n\n(def router\n (r/router\n [\"/:company/users/:user-id\" {:name ::user-view\n :coercion reitit.coercion.schema/coercion\n :parameters {:path {:company s/Str\n :user-id s/Int}}}]))\n\nA Match:\n(r/match-by-path r \"/metosin/users/123\")\n; #Match{:template \"/:company/users/:user-id\",\n; :data {:name :user/user-view,\n; :coercion >\n; :parameters {:path {:company java.lang.String,\n; :user-id Int}}},\n; :result nil,\n; :path-params {:company \"metosin\", :user-id \"123\"},\n; :path \"/metosin/users/123\"}\n\nCoercion was not applied. Why? In Reitit, routing and coercion are separate processes and we haven't applied the coercion yet. We need to apply it ourselves after the successfull routing.\nBut now we should have enough data on the match to apply the coercion.\nCompiling coercers\nBefore the actual coercion, we need to compile the coercers against the route data. Compiled coercers yield much better performance and the manual step of adding a coercion compiler makes things explicit and non-magical.\nCompiling can be done via a Middleware, Interceptor or a Router. We apply it now at router-level, effecting all routes (with :parameters and :coercion defined).\nThere is a helper function reitit.coercion/compile-request-coercers just for this:\n(require '[reitit.coercion :as coercion])\n(require '[reitit.coercion.schema])\n(require '[schema.core :as s])\n\n(def router\n (r/router\n [\"/:company/users/:user-id\" {:name ::user-view\n :coercion reitit.coercion.schema/coercion\n :parameters {:path {:company s/Str\n :user-id s/Int}}}]\n {:compile coercion/compile-request-coercers}))\n\nRouting again:\n(r/match-by-path r \"/metosin/users/123\")\n; #Match{:template \"/:company/users/:user-id\",\n; :data {:name :user/user-view,\n; :coercion >\n; :parameters {:path {:company java.lang.String,\n; :user-id Int}}},\n; :result {:path #object[reitit.coercion$request_coercer$]},\n; :path-params {:company \"metosin\", :user-id \"123\"},\n; :path \"/metosin/users/123\"}\n\nThe compiler added a :result key into the match (done just once, at router creation time), which holds the compiled coercers. We are almost done.\nApplying coercion\nWe can use a helper function reitit.coercion/coerce! to do the actual coercion, based on a Match:\n(coercion/coerce!\n (r/match-by-path router \"/metosin/users/123\"))\n; {:path {:company \"metosin\", :user-id 123}}\n\nWe get the coerced paremeters back. If a coercion fails, a typed (:reitit.coercion/request-coercion) ExceptionInfo is thrown, with data about the actual error:\n(coercion/coerce!\n (r/match-by-path router \"/metosin/users/ikitommi\"))\n; => ExceptionInfo Request coercion failed:\n; #CoercionError{:schema {:company java.lang.String, :user-id Int, Any Any},\n; :errors {:user-id (not (integer? \"ikitommi\"))}}\n; clojure.core/ex-info (core.clj:4739)\n\nFull example\nHere's an full example for doing routing and coercion with Reitit and Schema:\n(require '[reitit.coercion.schema])\n(require '[reitit.coercion :as coercion])\n(require '[reitit.core :as r])\n(require '[schema.core :as s])\n\n(def router\n (r/router\n [\"/:company/users/:user-id\" {:name ::user-view\n :coercion reitit.coercion.schema/coercion\n :parameters {:path {:company s/Str\n :user-id s/Int}}}]\n {:compile coercion/compile-request-coercers}))\n\n(defn match-by-path-and-coerce! [path]\n (if-let [match (r/match-by-path router path)]\n (assoc match :parameters (coercion/coerce! match))))\n\n(match-by-path-and-coerce! \"/metosin/users/123\")\n; #Match{:template \"/:company/users/:user-id\",\n; :data {:name :user/user-view,\n; :coercion >\n; :parameters {:path {:company java.lang.String,\n; :user-id Int}}},\n; :result {:path #object[reitit.coercion$request_coercer$]},\n; :path-params {:company \"metosin\", :user-id \"123\"},\n; :parameters {:path {:company \"metosin\", :user-id 123}}\n; :path \"/metosin/users/123\"}\n\n(match-by-path-and-coerce! \"/metosin/users/ikitommi\")\n; => ExceptionInfo Request coercion failed...\n\nRing Coercion\nFor a full-blown http-coercion, see the ring coercion.\nThanks to\n\ncompojure-api for the initial Coercion protocol\nschema and schema-tools for Schema Coercion\nspec-tools for Spec Coercion\n\n"},"coercion/schema_coercion.html":{"url":"coercion/schema_coercion.html","title":"Plumatic Schema","keywords":"","body":"Plumatic Schema Coercion\nPlumatic Schema is a Clojure(Script) library for declarative data description and validation.\n(require '[reitit.coercion.schema])\n(require '[reitit.coercion :as coercion])\n(require '[schema.core :as s])\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [\"/:company/users/:user-id\" {:name ::user-view\n :coercion reitit.coercion.schema/coercion\n :parameters {:path {:company s/Str\n :user-id s/Int}}}]\n {:compile coercion/compile-request-coercers}))\n\n(defn match-by-path-and-coerce! [path]\n (if-let [match (r/match-by-path router path)]\n (assoc match :parameters (coercion/coerce! match))))\n\nSuccessful coercion:\n(match-by-path-and-coerce! \"/metosin/users/123\")\n; #Match{:template \"/:company/users/:user-id\",\n; :data {:name :user/user-view,\n; :coercion >\n; :parameters {:path {:company java.lang.String,\n; :user-id Int}}},\n; :result {:path #object[reitit.coercion$request_coercer$]},\n; :path-params {:company \"metosin\", :user-id \"123\"},\n; :parameters {:path {:company \"metosin\", :user-id 123}}\n; :path \"/metosin/users/123\"}\n\nFailing coercion:\n(match-by-path-and-coerce! \"/metosin/users/ikitommi\")\n; => ExceptionInfo Request coercion failed...\n\n"},"coercion/clojure_spec_coercion.html":{"url":"coercion/clojure_spec_coercion.html","title":"Clojure.spec","keywords":"","body":"Clojure.spec Coercion\nThe clojure.spec library specifies the structure of data, validates or destructures it, and can generate data based on the spec.\nNOTE: Currently, clojure.spec doesn't support runtime transformations via conforming, so one needs to wrap all specs into Spec Records to get the coercion working.\n(require '[reitit.coercion.spec])\n(require '[reitit.coercion :as coercion])\n(require '[spec-tools.spec :as spec])\n(require '[clojure.spec.alpha :as s])\n(require '[reitit.core :as r])\n\n;; need to wrap the primitives!\n(s/def ::company spec/string?)\n(s/def ::user-id spec/int?)\n(s/def ::path-params (s/keys :req-un [::company ::user-id]))\n\n(def router\n (r/router\n [\"/:company/users/:user-id\" {:name ::user-view\n :coercion reitit.coercion.spec/coercion\n :parameters {:path ::path-params}}]\n {:compile coercion/compile-request-coercers}))\n\n(defn match-by-path-and-coerce! [path]\n (if-let [match (r/match-by-path router path)]\n (assoc match :parameters (coercion/coerce! match))))\n\nSuccessful coercion:\n(match-by-path-and-coerce! \"/metosin/users/123\")\n; #Match{:template \"/:company/users/:user-id\",\n; :data {:name :user/user-view,\n; :coercion >\n; :parameters {:path ::path-params}},\n; :result {:path #object[reitit.coercion$request_coercer$]},\n; :path-params {:company \"metosin\", :user-id \"123\"},\n; :parameters {:path {:company \"metosin\", :user-id 123}}\n; :path \"/metosin/users/123\"}\n\nFailing coercion:\n(match-by-path-and-coerce! \"/metosin/users/ikitommi\")\n; => ExceptionInfo Request coercion failed...\n\n"},"coercion/data_spec_coercion.html":{"url":"coercion/data_spec_coercion.html","title":"Data-specs","keywords":"","body":"Data-spec Coercion\nData-specs is alternative, macro-free syntax to define clojure.specs. As a bonus, supports the runtime transformations via conforming out-of-the-box.\n(require '[reitit.coercion.spec])\n(require '[reitit.coercion :as coercion])\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [\"/:company/users/:user-id\" {:name ::user-view\n :coercion reitit.coercion.spec/coercion\n :parameters {:path {:company string?\n :user-id int?}}}]\n {:compile coercion/compile-request-coercers}))\n\n(defn match-by-path-and-coerce! [path]\n (if-let [match (r/match-by-path router path)]\n (assoc match :parameters (coercion/coerce! match))))\n\nSuccessful coercion:\n(match-by-path-and-coerce! \"/metosin/users/123\")\n; #Match{:template \"/:company/users/:user-id\",\n; :data {:name :user/user-view,\n; :coercion >\n; :parameters {:path {:company string?,\n; :user-id int?}}},\n; :result {:path #object[reitit.coercion$request_coercer$]},\n; :path-params {:company \"metosin\", :user-id \"123\"},\n; :parameters {:path {:company \"metosin\", :user-id 123}}\n; :path \"/metosin/users/123\"}\n\nFailing coercion:\n(match-by-path-and-coerce! \"/metosin/users/ikitommi\")\n; => ExceptionInfo Request coercion failed...\n\n"},"advanced/":{"url":"advanced/","title":"Advanced","keywords":"","body":"Advanced\n\nConfiguring Routers\nDifferent Routers\nRoute Validation\nInterceptors\n\n"},"advanced/configuring_routers.html":{"url":"advanced/configuring_routers.html","title":"Configuring Routers","keywords":"","body":"Configuring Routers\nRouters can be configured via options. The following options are available for the reitit.core/router:\n\n\n\nkey\ndescription\n\n\n\n\n:path\nBase-path for routes\n\n\n:routes\nInitial resolved routes (default [])\n\n\n:data\nInitial route data (default {})\n\n\n:spec\nclojure.spec definition for a route data, see reitit.spec on how to use this\n\n\n:expand\nFunction of arg opts => data to expand route arg to route data (default reitit.core/expand)\n\n\n:coerce\nFunction of route opts => route to coerce resolved route, can throw or return nil\n\n\n:compile\nFunction of route opts => result to compile a route handler\n\n\n:validate\nFunction of routes opts => () to validate route (data) via side-effects\n\n\n:conflicts\nFunction of {route #{route}} => () to handle conflicting routes (default reitit.core/throw-on-conflicts!)\n\n\n:router\nFunction of routes opts => router to override the actual router implementation\n\n\n\n"},"advanced/different_routers.html":{"url":"advanced/different_routers.html","title":"Different Routers","keywords":"","body":"Different Routers\nReitit ships with several different implementations for the Router protocol, originally based on the Pedestal implementation. router function selects the most suitable implementation by inspecting the expanded routes. The implementation can be set manually using :router option, see configuring routers.\n\n\n\nrouter\ndescription\n\n\n\n\n:linear-router\nMatches the routes one-by-one starting from the top until a match is found. Works with any kind of routes. Slow, but works with all route trees.\n\n\n:lookup-router\nFast router, uses hash-lookup to resolve the route. Valid if no paths have path or catch-all parameters and there are no Route conflicts.\n\n\n:mixed-router\nCreates internally a :segment-router for wildcard routes and a :lookup-router or :single-static-path-router for static routes. Valid only if there are no Route conflicts.\n\n\n:single-static-path-router\nSuper fast router: sting-matches the route. Valid only if there is one static route.\n\n\n:segment-router\nRouter that creates a optimized search trie out of an route table. Much faster than :linear-router for wildcard routes. Valid only if there are no Route conflicts.\n\n\n\nThe router name can be asked from the router:\n(require '[reitit.core :as r])\n\n(def router\n (r/router\n [[\"/ping\" ::ping]\n [\"/api/:users\" ::users]]))\n\n(r/router-name router)\n; :mixed-router\n\n"},"advanced/route_validation.html":{"url":"advanced/route_validation.html","title":"Route Validation","keywords":"","body":"Route validation\nNamespace reitit.spec contains clojure.spec definitions for raw-routes, routes, router and router options.\nExample\n(require '[clojure.spec.alpha :as s])\n(require '[reitit.spec :as spec])\n\n(def routes-from-db\n [\"tenant1\" ::tenant1])\n\n(s/valid? ::spec/raw-routes routes-from-db)\n; false\n\n(s/explain ::spec/raw-routes routes-from-db)\n; In: [0] val: \"tenant1\" fails spec: :reitit.spec/path at: [:route :path] predicate: (or (blank? %) (starts-with? % \"/\"))\n; In: [0] val: \"tenant1\" fails spec: :reitit.spec/raw-route at: [:routes] predicate: (cat :path :reitit.spec/path :arg (? :reitit.spec/arg) :childs (* (and (nilable :reitit.spec/raw-route))))\n; In: [1] val: :user/tenant1 fails spec: :reitit.spec/raw-route at: [:routes] predicate: (cat :path :reitit.spec/path :arg (? :reitit.spec/arg) :childs (* (and (nilable :reitit.spec/raw-route))))\n; :clojure.spec.alpha/spec :reitit.spec/raw-routes\n; :clojure.spec.alpha/value [\"tenant1\" :user/tenant1]\n\nAt development time\nreitit.core/router can be instrumented and use a tool like expound to pretty-print the spec problems.\nFirst add a :dev dependency to:\n[expound \"0.4.0\"] ; or higher\n\nSome bootstrapping:\n(require '[clojure.spec.test.alpha :as stest])\n(require '[expound.alpha :as expound])\n(require '[clojure.spec.alpha :as s])\n(require '[reitit.spec])\n\n(stest/instrument `reitit/router)\n(set! s/*explain-out* expound/printer)\n\nAnd we are ready to go:\n(require '[reitit.core :as r])\n\n(r/router\n [\"/api\"\n [\"/public\"\n [\"/ping\"]\n [\"pong\"]]])\n\n; CompilerException clojure.lang.ExceptionInfo: Call to #'reitit.core/router did not conform to spec:\n;\n; -- Spec failed --------------------\n;\n; Function arguments\n;\n; ([\"/api\" ...])\n; ^^^^^^\n;\n; should satisfy\n;\n; (clojure.spec.alpha/cat\n; :path\n; :reitit.spec/path\n; :arg\n; (clojure.spec.alpha/? :reitit.spec/arg)\n; :childs\n; (clojure.spec.alpha/*\n; (clojure.spec.alpha/and\n; (clojure.spec.alpha/nilable :reitit.spec/raw-route))))\n;\n; or\n;\n; (clojure.spec.alpha/cat\n; :path\n; :reitit.spec/path\n; :arg\n; (clojure.spec.alpha/? :reitit.spec/arg)\n; :childs\n; (clojure.spec.alpha/*\n; (clojure.spec.alpha/and\n; (clojure.spec.alpha/nilable :reitit.spec/raw-route))))\n;\n; -- Relevant specs -------\n;\n; :reitit.spec/raw-route:\n; (clojure.spec.alpha/cat\n; :path\n; :reitit.spec/path\n; :arg\n; (clojure.spec.alpha/? :reitit.spec/arg)\n; :childs\n; (clojure.spec.alpha/*\n; (clojure.spec.alpha/and\n; (clojure.spec.alpha/nilable :reitit.spec/raw-route))))\n; :reitit.spec/raw-routes:\n; (clojure.spec.alpha/or\n; :route\n; :reitit.spec/raw-route\n; :routes\n; (clojure.spec.alpha/coll-of :reitit.spec/raw-route :into []))\n;\n; -- Spec failed --------------------\n;\n; Function arguments\n;\n; ([... [... ... [\"pong\"]]])\n; ^^^^^^\n;\n; should satisfy\n;\n; (fn\n; [%]\n; (or\n; (clojure.string/blank? %)\n; (clojure.string/starts-with? % \"/\")))\n;\n; or\n;\n; (fn\n; [%]\n; (or\n; (clojure.string/blank? %)\n; (clojure.string/starts-with? % \"/\")))\n;\n; -- Relevant specs -------\n;\n; :reitit.spec/path:\n; (clojure.spec.alpha/and\n; clojure.core/string?\n; (clojure.core/fn\n; [%]\n; (clojure.core/or\n; (clojure.string/blank? %)\n; (clojure.string/starts-with? % \"/\"))))\n; :reitit.spec/raw-route:\n; (clojure.spec.alpha/cat\n; :path\n; :reitit.spec/path\n; :arg\n; (clojure.spec.alpha/? :reitit.spec/arg)\n; :childs\n; (clojure.spec.alpha/*\n; (clojure.spec.alpha/and\n; (clojure.spec.alpha/nilable :reitit.spec/raw-route))))\n; :reitit.spec/raw-routes:\n; (clojure.spec.alpha/or\n; :route\n; :reitit.spec/raw-route\n; :routes\n; (clojure.spec.alpha/coll-of :reitit.spec/raw-route :into []))\n;\n; -------------------------\n; Detected 2 errors\n\n"},"advanced/interceptors.html":{"url":"advanced/interceptors.html","title":"Interceptors","keywords":"","body":"Interceptors\nReitit also supports Pedestal-style interceptors.\nwork in progress\n\nport the (coericon) middleware into interceptors\nseparate Clojure(Script) runner?\nDocs\nSamples\n\n"},"ring/":{"url":"ring/","title":"Ring","keywords":"","body":"Ring\n\nRing-router\nDynamic Extensions\nData-driven Middleware\nPluggable Coercion\nRoute Data Validation\nCompiling Middleware\n\n"},"ring/ring.html":{"url":"ring/ring.html","title":"Ring-router","keywords":"","body":"Ring Router\nRing-router adds support for handlers, middleware and routing based on :request-method. Ring-router is created with reitit.ring/router function. It runs a custom route compiler, creating a optimized stucture for handling route matches, with compiled middleware chain & handlers for all request methods. It also ensures that all routes have a :handler defined.\nSimple Ring app:\n(require '[reitit.ring :as ring])\n\n(defn handler [_]\n {:status 200, :body \"ok\"})\n\n(def app\n (ring/ring-handler\n (ring/router\n [\"/ping\" handler])))\n\nApplying the handler:\n(app {:request-method :get, :uri \"/favicon.ico\"})\n; nil\n\n(app {:request-method :get, :uri \"/ping\"})\n; {:status 200, :body \"ok\"}\n\nThe expanded routes shows the compilation results:\n(-> app (ring/get-router) (reitit/routes))\n; [[\"/ping\"\n; {:handler #object[...]}\n; #Methods{:any #Endpoint{:data {:handler #object[...]},\n; :handler #object[...],\n; :middleware []}}]]\n\nNote that the compiled resuts as third element in the route vector.\nRequest-method based routing\nHandler are also looked under request-method keys: :get, :head, :patch, :delete, :options, :post or :put. Top-level handler is used if request-method based handler is not found.\n(def app\n (ring/ring-handler\n (ring/router\n [\"/ping\" {:name ::ping\n :get handler\n :post handler}])))\n\n(app {:request-method :get, :uri \"/ping\"})\n; {:status 200, :body \"ok\"}\n\n(app {:request-method :put, :uri \"/ping\"})\n; nil\n\nName-based reverse routing:\n(-> app\n (ring/get-router)\n (reitit/match-by-name ::ping)\n :path)\n; \"/ping\"\n\nMiddleware\nMiddleware can be added with a :middleware key, either to top-level or under :request-method submap. It's value should be a vector value of the following:\n\nnormal ring middleware function handler -> request -> response\nvector of middleware function handler ?args -> request -> response and optinally it's args.\n\nA middleware and a handler:\n(defn wrap [handler id]\n (fn [request]\n (handler (update request ::acc (fnil conj []) id))))\n\n(defn handler [{:keys [::acc]}]\n {:status 200, :body (conj acc :handler)})\n\nApp with nested middleware:\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [#(wrap % :api)]}\n [\"/ping\" handler]\n [\"/admin\" {:middleware [[wrap :admin]]}\n [\"/db\" {:middleware [[wrap :db]]\n :delete {:middleware [[wrap :delete]]\n :handler handler}}]]])))\n\nMiddleware is applied correctly:\n(app {:request-method :delete, :uri \"/api/ping\"})\n; {:status 200, :body [:api :handler]}\n\n(app {:request-method :delete, :uri \"/api/admin/db\"})\n; {:status 200, :body [:api :admin :db :delete :handler]}\n\nDefault handler\nBy default, if no routes match, nil is returned, which is not valid response in Ring:\n(defn handler [_]\n {:status 200, :body \"\"})\n\n(def app\n (ring/ring-handler\n (ring/router\n [\"/ping\" handler])))\n\n(app {:uri \"/invalid\"})\n; nil\n\nSetting the default-handler as a second argument to ring-handler:\n(def app\n (ring/ring-handler\n (ring/router\n [\"/ping\" handler])\n (constantly {:status 404, :body \"\"})))\n\n(app {:uri \"/invalid\"})\n; {:status 404, :body \"\"}\n\nTo get more correct http error responses, ring/create-default-handler can be used. It differentiates :not-found (no route matched), :method-not-accepted (no method matched) and :not-acceptable (handler returned nil).\nWith defaults:\n(def app\n (ring/ring-handler\n (ring/router\n [[\"/ping\" {:get handler}]\n [\"/pong\" (constantly nil)]])\n (ring/create-default-handler)))\n\n(app {:request-method :get, :uri \"/ping\"})\n; {:status 200, :body \"\"}\n\n(app {:request-method :get, :uri \"/\"})\n; {:status 404, :body \"\"}\n\n(app {:request-method :post, :uri \"/ping\"})\n; {:status 405, :body \"\"}\n\n(app {:request-method :get, :uri \"/pong\"})\n; {:status 406, :body \"\"}\n\nWith custom responses:\n(def app\n (ring/ring-handler\n (ring/router\n [[\"/ping\" {:get handler}]\n [\"/pong\" (constantly nil)]])\n (ring/create-default-handler\n {:not-found (constantly {:status 404, :body \"kosh\"})\n :method-not-allowed (constantly {:status 405, :body \"kosh\"})\n :not-acceptable (constantly {:status 406, :body \"kosh\"})})))\n\n(app {:request-method :get, :uri \"/ping\"})\n; {:status 200, :body \"\"}\n\n(app {:request-method :get, :uri \"/\"})\n; {:status 404, :body \"kosh\"}\n\n(app {:request-method :post, :uri \"/ping\"})\n; {:status 405, :body \"kosh\"}\n\n(app {:request-method :get, :uri \"/pong\"})\n; {:status 406, :body \"kosh\"}\n\nAsync Ring\nAll built-in middleware provide both 2 and 3-arity and are compiled for both Clojure & ClojureScript, so they work with Async Ring and Node.js too.\n"},"ring/dynamic_extensions.html":{"url":"ring/dynamic_extensions.html","title":"Dynamic Extensions","keywords":"","body":"Dynamic Extensions\nring-handler injects the Match into a request and it can be extracted at runtime with reitit.ring/get-match. This can be used to build ad-hoc extensions to the system.\nExample middleware to guard routes based on user roles:\n(require '[clojure.set :as set])\n\n(defn wrap-enforce-roles [handler]\n (fn [{:keys [::roles] :as request}]\n (let [required (some-> request (ring/get-match) :data ::roles)]\n (if (and (seq required) (not (set/subset? required roles)))\n {:status 403, :body \"forbidden\"}\n (handler request)))))\n\nMounted to an app via router data (effecting all routes):\n(def handler (constantly {:status 200, :body \"ok\"}))\n\n(def app\n (ring/ring-handler\n (ring/router\n [[\"/api\"\n [\"/ping\" handler]\n [\"/admin\" {::roles #{:admin}}\n [\"/ping\" handler]]]]\n {:data {:middleware [wrap-enforce-roles]}})))\n\nAnonymous access to public route:\n(app {:request-method :get, :uri \"/api/ping\"})\n; {:status 200, :body \"ok\"}\n\nAnonymous access to guarded route:\n(app {:request-method :get, :uri \"/api/admin/ping\"})\n; {:status 403, :body \"forbidden\"}\n\nAuthorized access to guarded route:\n(app {:request-method :get, :uri \"/api/admin/ping\", ::roles #{:admin}})\n; {:status 200, :body \"ok\"}\n\n"},"ring/data_driven_middleware.html":{"url":"ring/data_driven_middleware.html","title":"Data-driven Middleware","keywords":"","body":"Data-driven Middleware\nRing defines middleware as a function of type handler & args => request => response. It's relatively easy to understand and enables good performance. Downside is that the middleware-chain is just a opaque function, making things like debugging and composition hard. It's too easy to apply the middleware in wrong order.\nReitit defines middleware as data:\n\nMiddleware can be defined as first-class data entries\nMiddleware can be defined as a duct-style vector (of middleware)\nMiddleware can be optimized & compiled againt an endpoint\nMiddleware chain can be transformed by the router\n\nMiddleware as data\nAll values in the :middleware vector in the route data are coerced into reitit.middleware/Middleware Records with using the reitit.middleware/IntoMiddleware Protocol. By default, functions, maps and Middleware records are allowed.\nRecords can have arbitrary keys, but the following keys have a special purpose:\n\n\n\nkey\ndescription\n\n\n\n\n:name\nName of the middleware as a qualified keyword\n\n\n:spec\nclojure.spec definition for the route data, see route data validation (optional)\n\n\n:wrap\nThe actual middleware function of handler & args => request => response\n\n\n:compile\nMiddleware compilation function, see compiling middleware.\n\n\n\nMiddleware Records are accessible in their raw form in the compiled route results, thus available for inventories, creating api-docs etc.\nFor the actual request processing, the Records are unwrapped into normal functions and composed into a middleware function chain, yielding zero runtime penalty.\nCreating Middleware\nThe following produce identical middleware runtime function.\nFunction\n(defn wrap [handler id]\n (fn [request]\n (handler (update request ::acc (fnil conj []) id))))\n\nRecord\n(require '[reitit.middleware :as middleware])\n\n(def wrap2\n (middleware/create\n {:name ::wrap2\n :description \"Middleware that does things.\"\n :wrap wrap}))\n\nMap\n(def wrap3\n {:name ::wrap3\n :description \"Middleware that does things.\"\n :wrap wrap})\n\nUsing Middleware\n:middleware is merged to endpoints by the router.\n(require '[reitit.ring :as ring])\n\n(defn handler [{:keys [::acc]}]\n {:status 200, :body (conj acc :handler)})\n\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [[wrap 1] [wrap2 2]]}\n [\"/ping\" {:get {:middleware [[wrap3 3]]\n :handler handler}}]])))\n\nAll the middleware are applied correctly:\n(app {:request-method :get, :uri \"/api/ping\"})\n; {:status 200, :body [1 2 3 :handler]}\n\nCompiling middleware\nMiddleware can be optimized against an endpoint using middleware compilation.\nTransforming the middleware chain\nThere is an extra option in ring-router (actually, in the undelaying middleware-router): :reitit.middleware/transform to transform the middleware chain per endpoint. It sees the vector of compiled middleware and should return a new vector of middleware.\nAdding debug middleware between all other middleware\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [[wrap 1] [wrap2 2]]}\n [\"/ping\" {:get {:middleware [[wrap3 3]]\n :handler handler}}]]\n {::middleware/transform #(interleave % (repeat [wrap :debug]))})))\n\n(app {:request-method :get, :uri \"/api/ping\"})\n; {:status 200, :body [1 :debug 2 :debug 3 :debug :handler]}\nReversing the middleware chain\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [[wrap 1] [wrap2 2]]}\n [\"/ping\" {:get {:middleware [[wrap3 3]]\n :handler handler}}]]\n {::middleware/transform reverse)})))\n\n(app {:request-method :get, :uri \"/api/ping\"})\n; {:status 200, :body [3 2 1 :handler]}\nRoadmap for middleware\nSome things bubblin' under:\n\nRe-package all useful middleware into (optimized) data-driven Middleware\njust package or a new community-repo with rehosting stuffm?\n\n\nSupport Keyword expansion into Middleware, enabling external Middleware Registries (duct/integrant/macchiato -style)\nSupport Middleware dependency resolution with new keys :requires and :provides. Values are set of top-level keys of the request. e.g.\nInjectUserIntoRequestMiddleware requires #{:session} and provides #{:user}\nAuthorizationMiddleware requires #{:user}\n\n\n\nIdeas welcome & see issues for details.\n"},"ring/coercion.html":{"url":"ring/coercion.html","title":"Pluggable Coercion","keywords":"","body":"Pluggable Coercion\nBasic coercion is explained in detail in the Coercion Guide. With Ring, both request parameters (:query, :body, :form, :header and :path) and response :body can be coerced.\nTo enable coercion, the following things need to be done:\n\nDefine a reitit.coercion/Coercion for the routes\nDefine types for the parameters and/or responses\nMount Coercion Middleware to apply to coercion\nUse the coerced parameters in a handler/middleware\n\nDefine coercion\nreitit.coercion/Coercion is a protocol defining how types are defined, coerced and inventoried.\nReitit ships with the following coercion modules:\n\nreitit.coercion.schema/coercion for plumatic schema\nreitit.coercion.spec/coercion for both clojure.spec and data-specs\n\nCoercion can be attached to route data under :coercion key. There can be multiple Coercion implementations within a single router, normal scoping rules apply.\nDefining parameters and responses\nBelow is a ring route data defining Plumatic Schema coercion. It defines schemas for :query, :body and :path parameters and for a successful response :body.\nThe coerced parameters can be read under :parameters key in the request.\n(require '[reitit.coercion.schema])\n(require '[schema.core :as s])\n\n(def plus-endpoint\n {:coercion reitit.coercion.schema/coercion\n :parameters {:query {:x s/Int}\n :body {:y s/Int}\n :path {:z s/Int}}\n :responses {200 {:schema {:total PositiveInt}}}\n :handler (fn [{:keys [parameters]}]\n (let [total (+ (-> parameters :query :x)\n (-> parameters :body :y)\n (-> parameters :path :z))]\n {:status 200\n :body {:total total}}))})\n\nCoercion Middleware\nDefining a coercion for a route data doesn't do anything, as it's just data. We have to attach some code to apply the actual coercion. We can use the middleware from reitit.ring.coercion:\n\ncoerce-request-middleware for the parameter coercion\ncoerce-response-middleware for the response coercion\ncoerce-exceptions-middleware to turn coercion exceptions into pretty responses\n\nFull example\nHere's an full example for applying coercion with Reitit, Ring and Schema:\n(require '[reitit.ring.coercion :as rrc])\n(require '[reitit.coercion.schema])\n(require '[reitit.ring :as ring])\n(require '[schema.core :as s])\n\n(def PositiveInt (s/constrained s/Int pos? 'PositiveInt))\n\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\"\n [\"/ping\" {:name ::ping\n :get (fn [_]\n {:status 200\n :body \"pong\"})}]\n [\"/plus/:z\" {:name ::plus\n :post {:coercion reitit.coercion.schema/coercion\n :parameters {:query {:x s/Int}\n :body {:y s/Int}\n :path {:z s/Int}}\n :responses {200 {:schema {:total PositiveInt}}}\n :handler (fn [{:keys [parameters]}]\n (let [total (+ (-> parameters :query :x)\n (-> parameters :body :y)\n (-> parameters :path :z))]\n {:status 200\n :body {:total total}}))}}]]\n {:data {:middleware [rrc/coerce-exceptions-middleware\n rrc/coerce-request-middleware\n rrc/coerce-response-middleware]}})))\n\nValid request:\n(app {:request-method :post\n :uri \"/api/plus/3\"\n :query-params {\"x\" \"1\"}\n :body-params {:y 2}})\n; {:status 200, :body {:total 6}}\n\nInvalid request:\n(app {:request-method :post\n :uri \"/api/plus/3\"\n :query-params {\"x\" \"abba\"}\n :body-params {:y 2}})\n; {:status 400,\n; :body {:schema {:x \"Int\", \"Any\" \"Any\"},\n; :errors {:x \"(not (integer? \\\"abba\\\"))\"},\n; :type :reitit.coercion/request-coercion,\n; :coercion :schema,\n; :value {:x \"abba\"},\n; :in [:request :query-params]}}\n\nInvalid response:\n(app {:request-method :post\n :uri \"/api/plus/3\"\n :query-params {\"x\" \"1\"}\n :body-params {:y -10}})\n; {:status 500,\n; :body {:schema {:total \"(constrained Int PositiveInt)\"},\n; :errors {:total \"(not (PositiveInt -6))\"},\n; :type :reitit.coercion/response-coercion,\n; :coercion :schema,\n; :value {:total -6},\n; :in [:response :body]}}\n\nOptimizations\nThe coercion middleware are compiled againts a route. In the compile step the actual coercer implementations are compiled for the defined models. Also, the mw doesn't mount itself if a route doesn't have :coercion and :parameters or :responses defined.\nWe can query the compiled middleware chain for the routes:\n(require '[reitit.core :as r])\n\n(-> (ring/get-router app)\n (r/match-by-name ::plus)\n :result :post :middleware\n (->> (mapv :name)))\n; [::mw/coerce-exceptions\n; ::mw/coerce-request\n; ::mw/coerce-response]\n\nRoute without coercion defined:\n(app {:request-method :get, :uri \"/api/ping\"})\n; {:status 200, :body \"pong\"}\n\nHas no mounted middleware:\n(-> (ring/get-router app)\n (r/match-by-name ::ping)\n :result :get :middleware\n (->> (mapv :name)))\n; []\n\nThanks to\n\ncompojure-api for the initial Coercion protocol\nring-swagger for the :parameters and :responses syntax.\nschema and schema-tools for Schema Coercion\nspec-tools for Spec Coercion\n\n"},"ring/route_data_validation.html":{"url":"ring/route_data_validation.html","title":"Route Data Validation","keywords":"","body":"Route Data Validation\nRing route validation works just like with core router, with few differences:\n\nreitit.ring.spec/validate-spec! should be used instead of reitit.spec/validate-spec! - to support validating all endpoints (:get, :post etc.)\nWith clojure.spec validation, Middleware can contribute to route spec via :specs key. The effective route data spec is router spec merged with middleware specs.\n\nExample\nLet's build a ring app with with both explicit (via middleware) and implicit (fully-qualified keys) spec validation.\nA simple app with spec-validation turned on:\n(require '[clojure.spec.alpha :as s])\n(require '[reitit.ring :as ring])\n(require '[reitit.ring.spec :as rrs])\n(require '[reitit.spec :as rs])\n(require '[expound.alpha :as e])\n\n(defn handler [_]\n {:status 200, :body \"ok\"})\n\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\"\n [\"/public\"\n [\"/ping\" {:get handler}]]\n [\"/internal\"\n [\"/users\" {:get {:handler handler}\n :delete {:handler handler}}]]]\n {:validate rrs/validate-spec!\n ::rs/explain e/expound-str})))\n\nAll good:\n(app {:request-method :get\n :uri \"/api/internal/users\"})\n; {:status 200, :body \"ok\"}\n\nExplicit specs via middleware\nMiddleware that requires :zone to be present in route data:\n(s/def ::zone #{:public :internal})\n\n(def zone-middleware\n {:name ::zone-middleware\n :spec (s/keys :req-un [::zone])\n :wrap (fn [handler]\n (fn [request]\n (let [zone (-> request (ring/get-match) :data :zone)]\n (println zone)\n (handler request))))})\n\nMissing route data fails fast at router creation:\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [zone-middleware]} ;; \nAdding the :zone to route data fixes the problem:\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [zone-middleware]}\n [\"/public\" {:zone :public} ;; {:status 200, :body \"ok\"}\n\nImplicit specs\nBy design, clojure.spec validates all fully-qualified keys with s/keys specs even if they are not defined in that keyset. Validation in implicit but powerful.\nLet's reuse the wrap-enforce-roles from Dynamic extensions and define specs for the data:\n(require '[clojure.set :as set])\n\n(s/def ::role #{:admin :manager})\n(s/def ::roles (s/coll-of ::role :into #{}))\n\n(defn wrap-enforce-roles [handler]\n (fn [{:keys [::roles] :as request}]\n (let [required (some-> request (ring/get-match) :data ::roles)]\n (if (and (seq required) (not (set/subset? required roles)))\n {:status 403, :body \"forbidden\"}\n (handler request)))))\n\nwrap-enforce-roles silently ignores if the ::roles is not present:\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [zone-middleware\n wrap-enforce-roles]} ;; {:status 200, :body \"ok\"}\n\nBut fails if they are present and invalid:\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\" {:middleware [zone-middleware\n wrap-enforce-roles]}\n [\"/public\" {:zone :public}\n [\"/ping\" {:get handler}]]\n [\"/internal\" {:zone :internal}\n [\"/users\" {:get {:handler handler\n ::roles #{:manager} ;; \nPushing the data to the endpoints\nAbility to define (and reuse) route-data in sub-paths is a powerful feature, but having data scattered all around might be harder to reason about. There is always an option to push all data to the endpoints.\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\"\n [\"/public\"\n [\"/ping\" {:zone :public\n :get handler\n :middleware [zone-middleware\n wrap-enforce-roles]}]]\n [\"/internal\"\n [\"/users\" {:zone :internal\n :middleware [zone-middleware\n wrap-enforce-roles]\n :get {:handler handler\n ::roles #{:manager}}\n :delete {:handler handler\n ::roles #{:admin}}}]]]\n {:validate rrs/validate-spec!\n ::rs/explain e/expound-str})))\n\nOr even flatten the routes:\n(def app\n (ring/ring-handler\n (ring/router\n [[\"/api/public/ping\" {:zone :public\n :get handler\n :middleware [zone-middleware\n wrap-enforce-roles]}]\n [\"/api/internal/users\" {:zone :internal\n :middleware [zone-middleware\n wrap-enforce-roles]\n :get {:handler handler\n ::roles #{:manager}}\n :delete {:handler handler\n ::roles #{:admin}}}]]\n {:validate rrs/validate-spec!\n ::rs/explain e/expound-str})))\n\nThe common Middleware can also be pushed to the router, here cleanly separing behavior and data:\n(def app\n (ring/ring-handler\n (ring/router\n [[\"/api/public/ping\" {:zone :public\n :get handler}]\n [\"/api/internal/users\" {:zone :internal\n :get {:handler handler\n ::roles #{:manager}}\n :delete {:handler handler\n ::roles #{:admin}}}]]\n {:data {:middleware [zone-middleware wrap-enforce-roles]}\n :validate rrs/validate-spec!\n ::rs/explain e/expound-str})))\n\n"},"ring/compiling_middleware.html":{"url":"ring/compiling_middleware.html","title":"Compiling Middleware","keywords":"","body":"Compiling Middleware\nThe dynamic extensions is a easy way to extend the system. To enable fast lookups into route data, we can compile them into any shape (records, functions etc.) we want, enabling fast access at request-time.\nBut, we can do much better. As we know the exact route that middleware/interceptor is linked to, we can pass the (compiled) route information into the middleware/interceptor at creation-time. It can do local reasoning: extract and transform relevant data just for it and pass it into the actual request-handler via a closure - yielding much faster runtime processing. It can also decide not to mount itself by returning nil. Why mount a wrap-enforce-roles middleware for a route if there are no roles required for it?\nTo enable this we use middleware records :compile key instead of the normal :wrap. :compile expects a function of route-data router-opts => ?wrap.\nTo demonstrate the two approaches, below are response coercion middleware written as normal ring middleware function and as middleware record with :compile.\nNormal Middleware\n\nReads the compiled route information on every request.\n\n(defn wrap-coerce-response\n \"Middleware for pluggable response coercion.\n Expects a :coercion of type `reitit.coercion/Coercion`\n and :responses from route data, otherwise will do nothing.\"\n [handler]\n (fn\n ([request]\n (let [response (handler request)\n method (:request-method request)\n match (ring/get-match request)\n responses (-> match :result method :data :responses)\n coercion (-> match :data :coercion)\n opts (-> match :data :opts)]\n (if (and coercion responses)\n (let [coercers (response-coercers coercion responses opts)]\n (coerce-response coercers request response))\n response)))\n ([request respond raise]\n (let [method (:request-method request)\n match (ring/get-match request)\n responses (-> match :result method :data :responses)\n coercion (-> match :data :coercion)\n opts (-> match :data :opts)]\n (if (and coercion responses)\n (let [coercers (response-coercers coercion responses opts)]\n (handler request #(respond (coerce-response coercers request %))))\n (handler request respond raise))))))\n\nCompiled Middleware\n\nRoute information is provided via a closure\nPre-compiled coercers\nMounts only if :coercion and :responses are defined for the route\nAlso defines spec for the route data :responses for the route data validation.\n\n(require '[reitit.spec :as rs])\n\n(def coerce-response-middleware\n \"Middleware for pluggable response coercion.\n Expects a :coercion of type `reitit.coercion/Coercion`\n and :responses from route data, otherwise does not mount.\"\n {:name ::coerce-response\n :spec ::rs/responses\n :compile (fn [{:keys [coercion responses]} opts]\n (if (and coercion responses)\n (let [coercers (coercion/response-coercers coercion responses opts)]\n (fn [handler]\n (fn\n ([request]\n (coercion/coerce-response coercers request (handler request)))\n ([request respond raise]\n (handler request #(respond (coercion/coerce-response coercers request %)) raise)))))))})\n\nThe latter has 50% less code, is easier to reason about and is much faster.\n"},"performance.html":{"url":"performance.html","title":"Performance","keywords":"","body":"Performance\nThere are many great routing libraries for Clojure(Script), but not many are optimized for perf. Reitit tries to be both great in features and be really fast. Originally the routing was adopted from Pedestal (which is known to be fast), but has been partially rewritten performance in mind. Hopefully some optimizations can be back-ported to Pedestal.\nRationale\n\nMultiple routing algorithms, choose based on the route tree\nRoute flattening and re-ordering\nManaged mutability over Immutability\nPrecompute/compile as much as possible (matches, middleware, routes)\nUse abstractions that enable JVM optimizations\nUse small functions to enable JVM Inlining\nProtocols over Multimethods (or Maps)\nRecords over Maps\nAlways be measuring\nDon't trust the (micro-)benchmarks\n\nDoes routing performance matter?\nWell, it depends. With small route trees, it might not. But, with large (real-life) route trees, difference between the fastest and the slowest tested libs can be two or three orders of magnitude. For busy sites it actually matters if you routing request takes 100 ns or 100 µs. A lot.\nTests\nAll perf tests are found in the repo and have been run with the following setup:\n;;\n;; start repl with `lein perf repl`\n;; perf measured with the following setup:\n;;\n;; Model Name: MacBook Pro\n;; Model Identifier: MacBookPro11,3\n;; Processor Name: Intel Core i7\n;; Processor Speed: 2,5 GHz\n;; Number of Processors: 1\n;; Total Number of Cores: 4\n;; L2 Cache (per Core): 256 KB\n;; L3 Cache: 6 MB\n;; Memory: 16 GB\n;;\nNOTE: Tests are not scientific proof and may contain errors. You should always run the perf tests with your own (real-life) routing tables to get more accurate results for your use case. Also, if you have idea how to test things better, please let us know.\nSimple Example\nThe routing sample taken from bide README:\n(require '[reitit.core :as r])\n(require '[criterium.core :as cc])\n\n(def routes\n (r/router\n [[\"/auth/login\" :auth/login]\n [\"/auth/recovery/token/:token\" :auth/recovery]\n [\"/workspace/:project/:page\" :workspace/page]]))\n\n;; Execution time mean (per 1000) : 3.2 µs -> 312M ops/sec\n(cc/quick-bench\n (dotimes [_ 1000]\n (r/match-by-path routes \"/auth/login\")))\n\n;; Execution time mean (per 1000): 530 µs -> 1.9M ops/sec\n(cc/quick-bench\n (dotimes [_ 1000]\n (r/match-by-path routes \"/workspace/1/1\")))\n\nBased on the perf tests, the first (static path) lookup is 300-500x faster and the second (wildcard path) lookup is 4-24x faster that the other tested routing libs (Ataraxy, Bidi, Compojure and Pedestal).\nBut, the example is too simple for any real benchmark. Also, some of the libraries always match on the :request-method too and by doing so, do more work than just match by path. Compojure does most work also by invoking the handler.\nSo, we need to test something more realistic.\nRESTful apis\nTo get better view on the real life routing performance, there is test of a mid-size rest(ish) http api with 50+ routes, having a lot of path parameters. The route definitions are pulled off from the OpenSensors swagger definitions.\nThanks to the snappy segment-tree algorithm, reitit-ring is fastest here. Pedestal is also fast with it's prefix-tree implementation.\n\nCQRS apis\nAnother real-life test scenario is a CQRS-style route tree, where all the paths are static, e.g. /api/command/add-order. The route definitions are pulled out from Lupapiste. The test consists of ~300 static routes (just the commands here, there would be ~200 queries too).\nAgain, both reitit-ring and Pedestal shine here, thanks to the fast lookup-routers. On average, they are two and on best case, three orders of magnitude faster than the other tested libs. Ataraxy failed this test on Method code too large! error.\n\nNOTE: If there would be even one wildcard route in the route-tree, Pedestal would fallback from lookup-router to the prefix-tree router, yielding nearly constant, but an order of magnitude slower perf. Reitit instead fallbacks to :mixed-router, serving all the static routes with :lookup-router, just the wildcard route(s) with :segment-tree. So, the performance would not notably degrade.\nWhy measure?\nThe routing perf needs to be measured to get an internal baseline to optimize against. We also want to ensure that new features don't regress the performance. Perf tests should be run in a stable CI environment. Help welcome.\nLooking out of the box\nIt might be interesting to compare reitit with the routers in other languages, like the routers in Go.\nPerformance tips\nFew things that have an effect on performance:\n\nWildcard-routes are an order of magnitude slower than static routes\nIt's ok to mix non-wildcard and wildcard routes in a same routing tree as long as you don't disable the conflict resolution => if no conflicting routes are found, a :mixed-router can be created, which internally has a fast static path router and a separate wildcard-router. So, the static paths are still fast.\nMove computation from request processing time into creation time, using by compiling middleware & route data.\nUnmounted middleware (or interceptor) is infinitely faster than a mounted one effectively doing nothing.\n\n\n\n"},"faq.html":{"url":"faq.html","title":"FAQ","keywords":"","body":"Frequently Asked Questions\nWhy yet another routing library?\nThere are many great routing libs for Clojure, but we felt that none was perfect. We picked\nbest parts of existing libs, added things that were missing (like first-class route data, spec-coercion and full route conflict resolution) trying to make a library it both both fun to use and really, really fast.\n"}}}
\ No newline at end of file