mirror of
https://github.com/metosin/reitit.git
synced 2025-12-28 04:18:24 +00:00
1 line
No EOL
208 KiB
JSON
1 line
No EOL
208 KiB
JSON
{"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","#{:id}}","&","'())","'[reitit.cor","'[reitit.r","(","(:api","(app","(clojure.spec)","(clojure.spec),","(def","(defn","(fn","(fnil","(handler","(r/match","(r/partial","(r/router","(requir","(ring/get","(ring/r","(ring/rout","(updat","200,","2})","2},","::ipa)","::order","::ping)","::ping))","::ping]","::ping}","::ping}]",":a",":admin]]}",":admin}",":api]]",":api]]}",":bodi",":get",":get,",":handler",":meta",":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","both","class","clojure(script)","coercion","compilation,","conflict","conj","data","dependeci","direct","driven","dynam","exampl","extend","extens","fast","first","follow","functions,","handler","handler}]]])))","id","id)","id))","id)))","id]","id]]))","id}","id},","interceptor","introduct","librari","match?","meta","method","method.","middlewar","middleware,","more.","name","nil","nil,","paramet","path","pluggabl","project:","r])","reitit","reitit,","request)","resolut","revers","ring","ring])","rout","router","router)","routing.","routing:","simpl","small","snapshot\"]","support","syntax","true","us","wrap","{:get","{:handler","{:id","{:middlewar","{:name","{:request","{:statu","{}"],"basics.html":["\"/\"","\"/api/admin/db/:db/drop\"","\"/api/admin/db/users/drop\")","\"/api/admin/db/users/drop\"}","\"/api/user/1\"","\"/api/user/1\")","\"/api/user/:id\"","\"/api/user/:id\",","\"/hello\")","\"1\"})","\"1\"}}","\"users\"}","#match{:templ","#partialmatch{:templ","#{:admin}","#{:admin}}","#{:db","#{:id}","#{:id}}","'[reitit.cor","'add","'get","(*path).","(:id)","([\"/get","(condp","(cqr","(def","(defn","(defprotocol","(for","(if","(match","(name","(non","(onli","(option","(r/match","(r/partial","(r/rout","(r/router","(reitit/rout","(requir","(rout","(router","(str","(via","/api/user/:id:","::admin]","::admin}]","::db","::db]","::db]]","::db]}","::db}]","::dev","::drop","::ping]","::ping]]","::ping}]","::ping}]]","::pong}]]","::user","::user)","::user))","::user]]]))","::users]","::users}]",":a",":command",":compil",":displace.",":get",":handler.",":let",":linear",":lookup",":meta",":mix",":name",":param",":paramet",":path",":post)]]",":prefix",":prepend,",":queri",":replac",":requir",":result",":role",":router",":user/ping}]",":user/user]",":user/user}",":user/user},",":user/user}]]",";","=","[\"\"","[\"/:db\"","[\"/add","[\"/admin\"","[\"/api\"","[\"/api/:version/ping\"]]","[\"/api/admin/db\"","[\"/api/admin/db/:db/drop\"","[\"/api/admin/db/:db/stats\"","[\"/api/admin/users\"","[\"/api/ping\"","[\"/api/user/:id\"","[\"/db\"","[\"/dev","[\"/drop\"","[\"/ping\"","[\"/ping\"]","[\"/pong\"","[\"/pong\"]]","[\"/public/*path\"]","[\"/stats\"","[\"/user/:id\"","[\"/users\"","[::admin],","[::admin]}","[::api","[::api]","[::api]}","[::db]","[:command","[:user/p","[[\"/api\"","[[\"/api/admin\"","[[\"/api/ping\"","[[\"/ping\"","[[\"/ping\"]","[[\"/users/:us","[[:queri","[[type","[action","[add","[get","[interceptor]}}])","[path","[thi","[this])","^:replac","accumul","act","action","actual","admin}","admin}}","append","applic","arbitrari","argument","arguments:","ask","awesom","base","best","both","catch","child","coerc","collections,","compiled.","conflict","cqr","creat","data","data,","data:","db]","db}","db}]","default,","defin","defined,","descript","dev","didn't","differ","done","easi","effect","exact","exampl","except","exceptioninfo","expan","expand","false)","fastest","flatten","flattened:","following:","found.","function","function,","function.","get","hash","hook)","id\"]","ignored.","implement","implementation.","inspect","interceptor))","interceptor]","intern","interpret","it'","it.","itself.","keyword","kind","let'","list","lookup","manual","map.","match","match,","match?","matched,","merge.","meta","method","miss","mode?","mode?]","name","name!","name.","name:","name]","names:","need","nest","nil","nil,","nil]","on","option","option.","order\"","order]]","order]}}])","origin","overridden","param","paramet","parameter:","parameters.","parameters:","params]))","partial","partialmatch,","path","path,","path])","pedest","programamtically:","protocol,","protocol.","protocol:","provid","r])","raw","recurs","reitit","reitit.core/expand","reitit.core/match","reitit.core/rout","removed.","resolv","retriev","return","revers","rout","route.","route:","router","router)","router,","router:","routes,","routes.","routes:","routing)","routing,","same","satisfi","select","sequential)","set","sever","ship","simpl","start","stats]]]]]))","stats}]]","string","string}","string}}","suitabl","syntax","take","throw","todo","too:","tools\"","tools])])","top","tree","tree:","true","two","type","until","us","user\"","user]","user]}}]","valid","vector","vectors,","version:","work","worlds.","wrap","{:db","{:get","{:id","{:interceptor","{:middlewar","{:name","{:paramet","{:post","{:role","{method"],"route_conflicts.html":["'[reitit.cor","(comp","(def","(reitit/rout","(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","especi","ex","exampl","exceptioninfo","explicit","first","good,","id","id\"]","id/ord","id/orders\"]","implement","info","librari","log","lookup","mani","match","merg","message.","multipl","pass","path","println","regress","reitit","reitit/conflict","reitit])","resolut","resolv","rout","router","routes)","routes.","routes:","run","singl","sourc","str)})","throw","thrown:","tree","unreach","used.","usually,","warning.","without","{:conflict"],"route_validation.html":["\"/\"))","\"/\")))","\"/\"))))","\"0.3.0\"]","\"1.9.0","\"1.9.660\"]","\"tenant1\"","#'reitit.core/rout","%","%)","'[clojure.spec.alpha","'[clojure.spec.test.alpha","'[expound.alpha","'[reitit.spec","'[reitit.spec])","(*","(?","([\"/api\"","([...","(and","(blank?","(cat","(clojur","(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","(e.g.","(fn","(nilabl","(or","(reitit/rout","(requir","(s/explain","(s/valid?","(set!","(start","(stest/instru","...","...])","1.8)","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]","[]))","[clojur","[expound","[org.clojure/clojur","[org.clojure/clojurescript","^^^^^^","`reitit/router)","add","alpha17\"]","alpha19\"]","argument","at:","bootstrapping:","call","clojure.core/string?","clojure.lang.exceptioninfo:","clojure.spec","compilerexcept","conform","contain","data","database),","db","db)","definit","depend","detect","develop","directli","error","expound","expound/printer)","expound])","extern","fail","fals","first","following:","function","functions.","futur","gener","go:","in:","instrument","namespac","note:","on","options.","out*","predicate:","pretti","print","problems.","raw","readi","reitit.core/rout","reitit.spec","relev","requir","rout","route))))","route:","router","routes,","routes:","runtim","s/*explain","s])","satisfi","someth","sourc","spec","spec:","spec])","stest])","time","to:","todo","tree","us","val:","valid","with?"],"configuring_routers.html":["#{route}}","(default",":coerc",":compil",":conflict",":expand",":meta",":path",":rout",":router","=>","[])","actual","allow","arg","avail","base","clojure.spec","coerc","compil","configur","conflict","conflicts!)","data","descript","effect","expand","fast,","follow","function","handl","handler","handlers.","implement","initi","key","meta","nil","opt","option","options.","overrid","path","reitit.core/expand)","reitit.core/router:","reitit.core/throw","resolv","result","return","rout","route,","router","side","thing","throw","valid","vector","via","{rout"],"ring.html":["\"/api/admin/db\"})","\"/api/ping\"})","\"/favicon.ico\"})","\"/ping\"","\"/ping\"})","\"ok\"}","\"ok\"})","#endpoint{:meta","#methods{:ani","#object[...],","#object[...]}","#object[...]},","%","&","'[reitit.r","(","(app","(conj","(def","(defn","(fn","(fnil","(handler","(reitit/match","(reitit/routes))","(requir","(ring/get","(ring/r","(ring/rout","(updat","2","200,","3","::acc","::ping","::ping)",":a",":admin",":admin]]}",":api)]}",":bodi",":db",":db]]",":delet",":delete)]",":delete,",":get",":get,",":handler",":handler)})",":handler]}",":head,",":middlewar",":options,",":patch,",":path)",":post",":put,",":put.",":request",":uri",";",">","?arg","[\"/admin\"","[\"/api\"","[\"/db\"","[\"/ping\"","[#(wrap","[::acc]}]","[:api","[[\"/ping\"","[[wrap","[])","[]}}]]","[_]","[handler","[request]","[{:key","acc","ad","add","app","app:","appli","args.","ariti","async","base","both","built","chain","clojur","clojurescript,","compil","compiler,","conj","correctly:","creat","custom","defined.","element","ensur","expand","following:","found.","function","function.","handl","handler","handler:","handler]","handler])))","handlers,","handler}])))","handler}}]]])))","id))))","id]","it'","key,","keys:","level","look","matches,","method","method.","methods.","middlewar","middleware:","name","nest","nil","node.j","note","optim","optin","provid","reitit.ring/rout","request","respons","resut","revers","ring","ring])","rout","router","router)","routes:","routing:","run","simpl","stuctur","support","third","too.","top","under","us","valu","vector","vector.","work","wrap","{:handler","{:middlewar","{:name","{:request","{:statu"],"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/intersect","(some","200,","403,","::role","::roles)]",":a",":bodi",":get,",":meta",":uri",";",">","[\"/admin\"","[\"/ping\"","[::roles]","[[\"/api\"","[handler]","[requir","[wrap","[{:key","access","anonym","app","author","base","build","data","dynam","enforc","exampl","extens","extract","guard","handler","handler]","handler]]]]","inject","match","match)","match.","meta","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","{:meta","{:middlewar","{:request","{:statu"],"parameter_coercion.html":["\"/api/ping\"","\"0.1.123\"]","\"0.3.3\"]","\"1.9.0","\"everyth","&","'[clojure.spec.alpha","'[reitit.coercion","'[reitit.coercion.spec","'[reitit.r","'[spec","(+","(app","(def","(fn","(or","(requir","(ring/r","(ring/rout","(s/def","(s/key","(st/spec","1,","1.9.0","200","200,","2}})","3}}","::i","::request","::request}","::respons","::response}}","::total","::x","::y]))",":a",":bodi",":body,",":body}",":coercion",":default",":descript",":form,",":get",":header",":paramet",":parameters.",":parameters}]",":path.",":query,",":req",":respons",":schema",":uri",":y",";","[\"/api\"","[\"/ping\"","[::total]))","[::x","[coercion/gen","[metosin/spec","[org.clojure/clojur","[org.clojure/spec.alpha","[x","[{{{:key","add","adopt","alpha20\"]","api.","app","befor","clojur","clojure.spec","code","coerc","coercion","coercion,","coercion.","coercion/gen","coercion])","compojur","data","data,","defin","depend","descript","differ","else\")","error","exampl","fails,","follow","following:","format","handler","implemen","inject","int?)","int?))","int?,","int?}}","int?}}}","introduc","key","manual","map","map,","meta","method","middlewar","mount","need","note:","on","option","origin","param","paramet","parameters:","pluggabl","po","project:","protocol,","provid","reitit","reitit.coercion.protocol/coercion","reitit.coercion.spec/speccoercion","request","respons","response]","ring","ring,","ring])","rout","routes.","s])","ship","shipped,","spec","spec/coercion}})))","spec])","specs.","st])","statu","submap","succeeds,","swagger:","thrown.","tool","tools.cor","un","under","understood","us","values.","via","wrap","x","y)}})}}]]","y]}","{200","{:bodi","{:handler","{:meta","{:middlewar","{:paramet","{:request","{:schema","{:statu","{:total","{:x"],"compiling_middleware.html":["\"gener","\"pluggabl","#(respond","%))","%))))","(","(:request","([request","([request]","(and","(coerc","(compiled)","(def","(defn","(fn","(handler","(if","(let","(middleware/cr","(records,","(respons","(ring/get","2","4x","50%","::coerc",":coercion",":coercion)",":gen",":gen.",":meta",":opts)]",":respons",":responses)",":result",":wrap.","=>",">","[coercer","[handler]","[respons","[{:key","_]","`reitit.coercion.protocol/coercion`","access","actual","approaches,","basic","below","better.","closur","code","code,","coerc","coercer","coercion","compil","compilation,","creation","data","defin","demonstr","easi","easier","effect","enabl","enforc","etc.)","exact","expect","extend","extens","extract","fast","faster","function","gen","handler","hook","inform","instead","interceptor/middlewar","it?","know","less","link","match","meta","meta,","method","middlewar","middleware.","mount","mount.\"","naiv","nil,","normal","opt","opts)","opts)]","opts]}","otherwis","pass","perf","pluggabl","pre","processing.","provid","raise))))))","raise)))))))}))","raise]","reason","record","reitit.coercion:","relev","request","request)","request)))","request))))","request.","requir","respond","respons","response)]","responses)","return","ring","role","rout","router","runtim","shape","still,","system.","tests.","time.","to,","transform","two","type","unmount","us","version","via","way","wrap","wrap.","written","yield","{:name"]},"length":9},"tokenStore":{"root":{"1":{"docs":{},".":{"8":{"docs":{},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}},"9":{"docs":{},".":{"0":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}},"docs":{}}},"docs":{}},",":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}},"2":{"0":{"0":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}},",":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"ring.html":{"ref":"ring.html","tf":0.01910828025477707},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.02142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}},"docs":{}},"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},"}":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}},",":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}},"}":{"docs":{},")":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}},"3":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},"}":{"docs":{},"}":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}},"4":{"0":{"3":{"docs":{},",":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.014285714285714285}}}},"docs":{}},"docs":{},"x":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}},"5":{"0":{"docs":{},"%":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}},"docs":{}},"docs":{},"\"":{"0":{"docs":{},".":{"1":{"docs":{},".":{"0":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}},"1":{"2":{"3":{"docs":{},"\"":{"docs":{},"]":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}},"docs":{}},"docs":{}},"docs":{}}},"3":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},"]":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}},"3":{"docs":{},"\"":{"docs":{},"]":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}},"docs":{}}},"docs":{}}},"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"}":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}}},".":{"9":{"docs":{},".":{"0":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}},"6":{"6":{"0":{"docs":{},"\"":{"docs":{},"]":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"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.006134969325153374}}}}}}}}}},"d":{"docs":{},"b":{"docs":{},"/":{"docs":{},":":{"docs":{},"d":{"docs":{},"b":{"docs":{},"/":{"docs":{},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"\"":{"docs":{},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"}":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}}}}}},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},",":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}},"}":{"docs":{},")":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}}}}}}},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"\"":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}},"}":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}},"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}},"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.006134969325153374}},",":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.009202453987730062},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}},"}":{"docs":{"./":{"ref":"./","tf":0.009202453987730062}},")":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"1":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}}}}}}},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}},")":{"docs":{},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"\"":{"docs":{},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}},"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.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},"}":{"docs":{},")":{"docs":{"ring.html":{"ref":"ring.html","tf":0.009554140127388535}}}}}}}}}},"o":{"docs":{},"k":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}},"}":{"docs":{"ring.html":{"ref":"ring.html","tf":0.006369426751592357},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.014285714285714285}},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},")":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{},"\"":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}}}},"docs":{}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"\"":{"docs":{},"}":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.014285714285714285}}}}}}}}}}}}},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"g":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}}}},"#":{"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.015337423312883436},"basics.html":{"ref":"basics.html","tf":0.004451038575667656}}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"s":{"docs":{},"{":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}}},":":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}}}}}}}}},"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.003067484662576687}}}}}}}}}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},"]":{"docs":{},",":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}},"}":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},",":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}}}}}}}}}},"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.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"}":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}},"}":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"}":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}},"}":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}},")":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}},"d":{"docs":{},"b":{"docs":{"basics.html":{"ref":"basics.html","tf":0.005934718100890208}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"}":{"docs":{},"}":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}}}}}}}},"'":{"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":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}}}}}}}}}}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}}}}}}},"&":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.006369426751592357},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}},"'":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}},"[":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}}}}}}}}}}},"r":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}},"]":{"docs":{},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}}}}}}}},"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":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}}}}},"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":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"(":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.006369426751592357},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.01764705882352941}},":":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"ring.html":{"ref":"ring.html","tf":0.01910828025477707},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.02142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}},"n":{"docs":{},"d":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.008823529411764706}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}},",":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"/":{"docs":{},"*":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.009153318077803204}}},"?":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.009153318077803204}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.011441647597254004}}}}},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.009153318077803204}}}},"o":{"docs":{},"l":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}}}}},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.009153318077803204}}}}},"o":{"docs":{},"r":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"b":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"k":{"docs":{},"?":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.006864988558352402}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.006864988558352402}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"f":{"docs":{},"n":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}},"o":{"docs":{},"r":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"p":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"j":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}},"m":{"docs":{},"p":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.01764705882352941}}}}}},"q":{"docs":{},"r":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"a":{"docs":{},"t":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.009202453987730062},"basics.html":{"ref":"basics.html","tf":0.002967359050445104},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801},"ring.html":{"ref":"ring.html","tf":0.009554140127388535},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.014285714285714285},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},"n":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"ring.html":{"ref":"ring.html","tf":0.009554140127388535},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.04081632653061224}}}}}}}}},"f":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.011764705882352941}},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}},"o":{"docs":{},"r":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.023529411764705882}}}}}}}}},"r":{"docs":{},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.027607361963190184},"basics.html":{"ref":"basics.html","tf":0.010385756676557863}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.004451038575667656}}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.009202453987730062},"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"route_validation.html":{"ref":"route_validation.html","tf":0.013729977116704805},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.02572347266881029}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.014285714285714285},"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},")":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},",":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.008823529411764706}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.006369426751592357},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}},"r":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.009554140127388535},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.009554140127388535},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}},"e":{"docs":{},"r":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}},"*":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}},"[":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}},"]":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}}}}}}},"i":{"docs":{},"f":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.008823529411764706}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"r":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"o":{"docs":{},"n":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"t":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}}}}}}}},"o":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}},"r":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.006864988558352402},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}}}}},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}}}},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"?":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.01607717041800643}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}},"e":{"docs":{},"t":{"docs":{},"!":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}}}}},"q":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}},"v":{"docs":{},"i":{"docs":{},"a":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"?":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}}},"b":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"k":{"docs":{},"?":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},".":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.014705882352941176}}}}},"+":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}},":":{"docs":{},":":{"docs":{},"i":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}},"p":{"docs":{},"a":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.018404907975460124}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}},"]":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.004451038575667656}},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"}":{"docs":{"./":{"ref":"./","tf":0.009202453987730062}},"]":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.001483679525222552}},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"}":{"docs":{},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}},"c":{"docs":{},"c":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}},"d":{"docs":{},"b":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.004451038575667656}},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"}":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}},"}":{"docs":{},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"e":{"docs":{},"v":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{"basics.html":{"ref":"basics.html","tf":0.004451038575667656}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}},"s":{"docs":{},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"}":{"docs":{},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{},"]":{"docs":{},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}},"docs":{}}}}}},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}},"s":{"docs":{},")":{"docs":{},"]":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}},"}":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}},"e":{"docs":{},"}":{"docs":{},"}":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}}}}}},"x":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}},"y":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}},"a":{"docs":{"./":{"ref":"./","tf":0.009202453987730062},"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"route_validation.html":{"ref":"route_validation.html","tf":0.011441647597254004},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.014285714285714285},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.02572347266881029}},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},"]":{"docs":{},"]":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}},"}":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}}}},"p":{"docs":{},"i":{"docs":{},"]":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}},"}":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}},")":{"docs":{},"]":{"docs":{},"}":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}},"r":{"docs":{},"g":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.013729977116704805}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"ring.html":{"ref":"ring.html","tf":0.01910828025477707},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.03571428571428571},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.01929260450160772}}},"y":{"docs":{},",":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}},"}":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.012861736334405145}},",":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.012738853503184714},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.02142857142857143}}}},"n":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.011764705882352941}},".":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.009554140127388535}},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},")":{"docs":{},"}":{"docs":{},")":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}},"]":{"docs":{},"}":{"docs":{"ring.html":{"ref":"ring.html","tf":0.006369426751592357}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},",":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}},"e":{"docs":{},"r":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.018404907975460124},"basics.html":{"ref":"basics.html","tf":0.005934718100890208},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.01764705882352941}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.006369426751592357}}}}}}}}},"x":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"basics.html":{"ref":"basics.html","tf":0.013353115727002967}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.018404907975460124},"basics.html":{"ref":"basics.html","tf":0.005934718100890208}},"e":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.004451038575667656},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}},"}":{"docs":{},"]":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.015337423312883436},"basics.html":{"ref":"basics.html","tf":0.004451038575667656},"route_validation.html":{"ref":"route_validation.html","tf":0.013729977116704805},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}},"]":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}},")":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}},".":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}},"c":{"docs":{},"h":{"docs":{},",":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.006369426751592357}},")":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}},"u":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}},".":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.018404907975460124},"basics.html":{"ref":"basics.html","tf":0.005934718100890208},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.00964630225080386},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.008823529411764706}},"e":{"docs":{},"s":{"docs":{},")":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.013729977116704805}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.016018306636155607}},":":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.038901601830663615}}}}}}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics.html":{"ref":"basics.html","tf":0.00741839762611276}}}},"u":{"docs":{},"t":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.009153318077803204},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}},"e":{"docs":{},"r":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}}}}}},"u":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"ring.html":{"ref":"ring.html","tf":0.01910828025477707},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.02142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"}":{"docs":{},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"}":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"]":{"docs":{},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}},"]":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}},"docs":{}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.006134969325153374}},".":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}}}},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.00964630225080386},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.008823529411764706}},")":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}}}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.013729977116704805}}}}}},"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":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}},"e":{"docs":{},"v":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring.html":{"ref":"ring.html","tf":0.006369426751592357}},"e":{"docs":{},")":{"docs":{},"]":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}},",":{"docs":{"ring.html":{"ref":"ring.html","tf":0.009554140127388535}}}}}}},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}}},"b":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},"]":{"docs":{},"]":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}}}}},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"u":{"docs":{},"p":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"y":{"docs":{},",":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}},"s":{"docs":{},")":{"docs":{},"]":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"y":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.00964630225080386}}}},";":{"docs":{"./":{"ref":"./","tf":0.11349693251533742},"basics.html":{"ref":"basics.html","tf":0.0712166172106825},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.17142857142857143},"route_validation.html":{"ref":"route_validation.html","tf":0.2517162471395881},"ring.html":{"ref":"ring.html","tf":0.03821656050955414},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.02142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}},">":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.05714285714285714},"ring.html":{"ref":"ring.html","tf":0.01910828025477707},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.01764705882352941}}},"[":{"0":{"docs":{},"]":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}}}},"1":{"docs":{},"]":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}},"docs":{},"\"":{"docs":{},"/":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.002967359050445104},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}},"d":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.005934718100890208},"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}}}}}}}}}},":":{"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.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"/":{"docs":{},":":{"docs":{},"d":{"docs":{},"b":{"docs":{},"/":{"docs":{},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.004451038575667656},"ring.html":{"ref":"ring.html","tf":0.009554140127388535},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.014285714285714285},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}},"]":{"docs":{},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"/":{"docs":{},"*":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"\"":{"docs":{},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}}}}},"\"":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}},":":{"docs":{},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}},"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":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}},"e":{"docs":{},"v":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{},"/":{"docs":{},":":{"docs":{},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}}}}}}}},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{},"\"":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}}}},"docs":{}}}}}}}},"[":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},":":{"docs":{},"u":{"docs":{},"s":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}}}},"#":{"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.003067484662576687}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"ring.html":{"ref":"ring.html","tf":0.006369426751592357}}}}}},":":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}},"_":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},"]":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}}}}}},"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.003067484662576687}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}},"i":{"docs":{},"r":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.008823529411764706}}}}}}}}},":":{"docs":{},":":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}},"}":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}},"p":{"docs":{},"i":{"docs":{"basics.html":{"ref":"basics.html","tf":0.00741839762611276}},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}},"}":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"c":{"docs":{},"c":{"docs":{},"]":{"docs":{},"}":{"docs":{},"]":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}}},"d":{"docs":{},"b":{"docs":{},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"]":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}}},"t":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}}}},"x":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"p":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}},"e":{"docs":{},"s":{"docs":{},"]":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"ring.html":{"ref":"ring.html","tf":0.006369426751592357}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}},"d":{"docs":{},"d":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"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.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"basics.html":{"ref":"basics.html","tf":0.004451038575667656}},"s":{"docs":{},"]":{"docs":{},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.005934718100890208}}}}}}}},"%":{"docs":{},"]":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.006864988558352402}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}},"]":{"docs":{},")":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.02040816326530612},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}}}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}}}}},"e":{"docs":{},"r":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.008823529411764706}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}},"#":{"docs":{},"(":{"docs":{},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring.html":{"ref":"ring.html","tf":0.006369426751592357}}}}}}}},"{":{"docs":{},":":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}},"{":{"docs":{},"{":{"docs":{},":":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}},"x":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}},"a":{"docs":{},"d":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},"d":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"}":{"docs":{"basics.html":{"ref":"basics.html","tf":0.004451038575667656}},"}":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}},"p":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"ring.html":{"ref":"ring.html","tf":0.01910828025477707},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.014285714285714285},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"l":{"docs":{},"i":{"docs":{"ring.html":{"ref":"ring.html","tf":0.006369426751592357}},"c":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}}},":":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}},"r":{"docs":{},"o":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}}}},"i":{"docs":{},".":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}},"c":{"docs":{},"c":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},"u":{"docs":{},"m":{"docs":{},"u":{"docs":{},"l":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.02142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}}},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}},"g":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.02040816326530612}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.004451038575667656},"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}},"s":{"docs":{},":":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}},"s":{"docs":{},".":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}},"s":{"docs":{},"k":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{"ring.html":{"ref":"ring.html","tf":0.006369426751592357}}}}}},"w":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}}},"p":{"docs":{},"h":{"docs":{},"a":{"1":{"7":{"docs":{},"\"":{"docs":{},"]":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}},"9":{"docs":{},"\"":{"docs":{},"]":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}},"docs":{}},"2":{"0":{"docs":{},"\"":{"docs":{},"]":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}},"docs":{}},"docs":{}}}}},"t":{"docs":{},":":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.006864988558352402}}}},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"y":{"docs":{},"m":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.014285714285714285}}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.00741839762611276},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306},"ring.html":{"ref":"ring.html","tf":0.009554140127388535},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}},"i":{"docs":{},"c":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"ring.html":{"ref":"ring.html","tf":0.006369426751592357}}}},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}}}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}},"d":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}}}}}}},".":{"docs":{},"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":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"?":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},",":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}}},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.01607717041800643},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.011764705882352941}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":5.02572347266881},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.03529411764705882}},",":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}},".":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}},"]":{"docs":{},")":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}}},"e":{"docs":{},"r":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.029411764705882353}}}}}}},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.02040816326530612},"ring.html":{"ref":"ring.html","tf":0.009554140127388535},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":5.011764705882353}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"r":{"docs":{},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}},",":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_conflicts.html":{"ref":"route_conflicts.html","tf":5.0285714285714285},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}},"s":{"docs":{},":":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.014285714285714285}}},"!":{"docs":{},")":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}}}},"i":{"docs":{},"t":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":5.020408163265306}}}}}}},"j":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.014285714285714285},"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}}}}},"d":{"docs":{},"e":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},",":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics.html":{"ref":"basics.html","tf":0.004451038575667656}}}}},"l":{"docs":{},"l":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}},"q":{"docs":{},"r":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.005934718100890208},"ring.html":{"ref":"ring.html","tf":0.006369426751592357}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.012269938650306749},"basics.html":{"ref":"basics.html","tf":0.00741839762611276},"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.02040816326530612},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.012861736334405145},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.008823529411764706}},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}},":":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}}}},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}},"i":{"docs":{},"n":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.00964630225080386},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},".":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}},"i":{"docs":{},"t":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"v":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}},"l":{"docs":{},"i":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}},"d":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.009202453987730062}}}}}}},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":5.014285714285714}}}}}},"b":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"}":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"e":{"docs":{},"x":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}},"c":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}},"s":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":5.014285714285714},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}},"r":{"docs":{},"n":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}},"d":{"docs":{"basics.html":{"ref":"basics.html","tf":0.00741839762611276},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.02040816326530612},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}}}},"]":{"docs":{},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.008823529411764706}}}}}}},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},"e":{"docs":{},"r":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}},"s":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"c":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.014285714285714285},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}},"t":{"docs":{},"c":{"docs":{},".":{"docs":{},")":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"f":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"r":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}},",":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}}},"l":{"docs":{},"s":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}},"e":{"docs":{},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"i":{"docs":{},"l":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.011441647597254004}},"s":{"docs":{},",":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.05102040816326531},"ring.html":{"ref":"ring.html","tf":0.006369426751592357},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.008823529411764706}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}},".":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.012269938650306749},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306},"ring.html":{"ref":"ring.html","tf":0.03821656050955414},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.02142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}}}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}}}}},"s":{"docs":{},".":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}},",":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}},":":{"docs":{"ring.html":{"ref":"ring.html","tf":0.006369426751592357}}},"]":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}}},"s":{"docs":{},"h":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.02857142857142857}},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}},")":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}},"]":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},"]":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}}},"}":{"docs":{"./":{"ref":"./","tf":0.006134969325153374}},",":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}},"\"":{"docs":{},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.014285714285714285}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"]":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}},")":{"docs":{},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"/":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}}}}}}}}}}}}}},"n":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}},"t":{"docs":{"./":{"ref":"./","tf":10.003067484662576}}}}}}}},"?":{"docs":{},")":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}},")":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}},",":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}},"}":{"docs":{},"}":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}},"}":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"f":{"docs":{},"o":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}},"r":{"docs":{},"m":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.008823529411764706}}}}}},":":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.006864988558352402}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.02040816326530612}}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.004451038575667656},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}}}}}}},"t":{"docs":{},"'":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}},"?":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}},"l":{"docs":{},"i":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}},"s":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}},"n":{"docs":{},"k":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}},"e":{"docs":{},"t":{"docs":{},"'":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}},"s":{"docs":{},"s":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},"u":{"docs":{},"p":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}},"g":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics.html":{"ref":"basics.html","tf":0.011869436201780416},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.014285714285714285},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.029411764705882353}},"?":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"s":{"docs":{},",":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}},")":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}},".":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}},"n":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}},"i":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}},"p":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},",":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.002967359050445104},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.04081632653061224},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.008823529411764706}},",":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"ring.html":{"ref":"ring.html","tf":0.028662420382165606},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.02142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.01764705882352941}},".":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}},"s":{"docs":{},".":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}}},"r":{"docs":{},"g":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}},"e":{"docs":{},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"ring.html":{"ref":"ring.html","tf":0.028662420382165606},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":5.020588235294118}},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}},":":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}},".":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.008823529411764706}}}}}}}}}}},"s":{"docs":{},"s":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}},"d":{"docs":{},"e":{"docs":{},"?":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}},".":{"docs":{},"\"":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"l":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.014285714285714285}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.018404907975460124},"basics.html":{"ref":"basics.html","tf":0.016320474777448073},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},"!":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},":":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"s":{"docs":{},":":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}},"i":{"docs":{},"v":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.027607361963190184},"basics.html":{"ref":"basics.html","tf":0.008902077151335312},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306},"ring.html":{"ref":"ring.html","tf":0.006369426751592357}},",":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.004451038575667656},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"e":{"docs":{},"e":{"docs":{},"d":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}},"s":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.004451038575667656},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},":":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}},"d":{"docs":{},"e":{"docs":{},".":{"docs":{},"j":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.004451038575667656},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":5.022508038585209}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"s":{"docs":{},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}},":":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"s":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.009202453987730062},"basics.html":{"ref":"basics.html","tf":0.025222551928783383},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"]":{"docs":{},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"s":{"docs":{},"s":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"g":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"a":{"docs":{},"m":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}},":":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"s":{"docs":{},".":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}},"l":{"docs":{},"n":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}},"e":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},":":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.006864988558352402}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"i":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"r":{"docs":{},"f":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}},"o":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}},"r":{"docs":{},"]":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}},",":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}},")":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104},"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}},":":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}}}}}},"]":{"docs":{},")":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring.html":{"ref":"ring.html","tf":0.022292993630573247},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.014285714285714285},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.01607717041800643},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.03235294117647059}},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.01764705882352941}},")":{"docs":{},")":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}},")":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},")":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}},"}":{"docs":{},"]":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}},".":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}},"i":{"docs":{},"r":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}},"v":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.02040816326530612}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}},"t":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring.html":{"ref":"ring.html","tf":0.006369426751592357},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.01607717041800643},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.05}},"e":{"docs":{},"]":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}},")":{"docs":{},"]":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}},"s":{"docs":{},")":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.008823529411764706}}}}}},"d":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.008823529411764706}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"ring.html":{"ref":"ring.html","tf":5.022292993630574},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},"]":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}},",":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.018404907975460124},"basics.html":{"ref":"basics.html","tf":5.048961424332345},"route_conflicts.html":{"ref":"route_conflicts.html","tf":5.057142857142857},"route_validation.html":{"ref":"route_validation.html","tf":5.034324942791762},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.11224489795918367},"ring.html":{"ref":"ring.html","tf":0.01910828025477707},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.03235294117647059}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.03680981595092025},"basics.html":{"ref":"basics.html","tf":0.04747774480712166},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.02142857142857143},"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602},"configuring_routers.html":{"ref":"configuring_routers.html","tf":5.040816326530612},"ring.html":{"ref":"ring.html","tf":5.009554140127388},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},")":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.005934718100890208},"ring.html":{"ref":"ring.html","tf":0.006369426751592357}}},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},":":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},":":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.02142857142857143}}},"s":{"docs":{},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}}},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.005934718100890208},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}},":":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.014285714285714285},"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}},")":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}},":":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.013729977116704805}}}}}},",":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}},":":{"docs":{"./":{"ref":"./","tf":0.012269938650306749},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}},"l":{"docs":{},"e":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}},"s":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}},":":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}},"]":{"docs":{},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}}}},"a":{"docs":{},"w":{"docs":{"basics.html":{"ref":"basics.html","tf":0.005934718100890208},"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},")":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}}}}},"]":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}}},"u":{"docs":{},"n":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}},"s":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}},"d":{"docs":{},"e":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}}},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}}},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{},"\"":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.003067484662576687}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}},"i":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}},"b":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"e":{"docs":{},"d":{"docs":{},"s":{"docs":{},",":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}}}},"y":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":5.001483679525222}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},".":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"f":{"docs":{},"i":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}}}}}}}},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}},"]":{"docs":{},")":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"h":{"docs":{},"i":{"docs":{},"p":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"a":{"docs":{},"p":{"docs":{},"e":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"t":{"docs":{},"s":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"u":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}},"}":{"docs":{"basics.html":{"ref":"basics.html","tf":0.004451038575667656}},"}":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}},")":{"docs":{},"}":{"docs":{},")":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"]":{"docs":{},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}},"]":{"docs":{},")":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},",":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}},"/":{"docs":{},"*":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}}}},"]":{"docs":{},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.016018306636155607},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.00964630225080386}},":":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.009153318077803204}}},"]":{"docs":{},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},"e":{"docs":{},"e":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}},":":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}}}}}},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}}},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}},"n":{"docs":{},":":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}},".":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}},"r":{"docs":{},"d":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}},"o":{"docs":{},"d":{"docs":{},"o":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}},"o":{"docs":{},":":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"l":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}},"s":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"]":{"docs":{},")":{"docs":{},"]":{"docs":{},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}},".":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}},"p":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}},":":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}},",":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}},"w":{"docs":{},"o":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}},".":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}},"u":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.008902077151335312},"route_validation.html":{"ref":"route_validation.html","tf":0.009153318077803204},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},"e":{"docs":{},"r":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}}}}},"d":{"docs":{},".":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}}}},"n":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.012861736334405145},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.008823529411764706}},".":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}}},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}},"l":{"docs":{},"d":{"docs":{},"s":{"docs":{},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}},"a":{"docs":{},"r":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}}},"y":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}},"?":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.009153318077803204}}}}}}},"{":{"2":{"0":{"0":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}},"docs":{}},"docs":{}},"docs":{},":":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.003067484662576687},"ring.html":{"ref":"ring.html","tf":0.006369426751592357},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.009202453987730062},"basics.html":{"ref":"basics.html","tf":0.004451038575667656}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics.html":{"ref":"basics.html","tf":0.019287833827893175}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.009202453987730062},"basics.html":{"ref":"basics.html","tf":0.004451038575667656},"ring.html":{"ref":"ring.html","tf":0.012738853503184714},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.015337423312883436},"basics.html":{"ref":"basics.html","tf":0.010385756676557863},"ring.html":{"ref":"ring.html","tf":0.0031847133757961785},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"ring.html":{"ref":"ring.html","tf":0.01910828025477707},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.02142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.006134969325153374},"ring.html":{"ref":"ring.html","tf":0.01910828025477707},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.03571428571428571},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.012861736334405145}}}}}},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}}}},"d":{"docs":{},"b":{"docs":{"basics.html":{"ref":"basics.html","tf":0.00741839762611276}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}}}}}}},":":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}},"t":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.01607717041800643}}}}}}},"x":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.00964630225080386}}}},"}":{"docs":{"./":{"ref":"./","tf":0.006134969325153374}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}}}}},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},":":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}}}}}},":":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.014285714285714285}}}}}},"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":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.02857142857142857}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{},"/":{"docs":{},":":{"docs":{},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.02857142857142857}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"/":{"docs":{},"*":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.02857142857142857}}}}}}}}}}}}}}},"=":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}},">":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.05102040816326531},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}},"^":{"docs":{},":":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"n":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},"e":{"docs":{},"r":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"route_conflicts.html":{"ref":"route_conflicts.html","tf":0.007142857142857143}}}}},":":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.02142857142857143}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}},",":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}},"s":{"docs":{},":":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}},"o":{"docs":{},"n":{"docs":{"basics.html":{"ref":"basics.html","tf":0.004451038575667656},"route_validation.html":{"ref":"route_validation.html","tf":0.004576659038901602},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}},"p":{"docs":{},"t":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.04081632653061224},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.008823529411764706}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics.html":{"ref":"basics.html","tf":0.00741839762611276},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.02040816326530612},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}},".":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"s":{"docs":{},".":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}}}},"m":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}},"n":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}},"s":{"docs":{},")":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}},"]":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}},"]":{"docs":{},"}":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"]":{"docs":{},"]":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},")":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"*":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"s":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"basics.html":{"ref":"basics.html","tf":0.002967359050445104},"route_validation.html":{"ref":"route_validation.html","tf":5.004576659038902},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306}}}},":":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.006864988558352402}}},"u":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552},"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306},"ring.html":{"ref":"ring.html","tf":0.006369426751592357}},"s":{"docs":{},",":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}},".":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}}},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},":":{"docs":{"basics.html":{"ref":"basics.html","tf":0.001483679525222552}}}}}}}}},"i":{"docs":{},"a":{"docs":{"configuring_routers.html":{"ref":"configuring_routers.html","tf":0.01020408163265306},"dynamic_extensions.html":{"ref":"dynamic_extensions.html","tf":0.007142857142857143},"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.003215434083601286},"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}},"%":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.009153318077803204},"ring.html":{"ref":"ring.html","tf":0.006369426751592357}},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.009153318077803204}},")":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}},")":{"docs":{},")":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}},"]":{"docs":{},")":{"docs":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}},"`":{"docs":{},"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":{"route_validation.html":{"ref":"route_validation.html","tf":0.002288329519450801}}}}}}}}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"`":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0058823529411764705}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"?":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"ring.html":{"ref":"ring.html","tf":0.0031847133757961785}}}}}},"x":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}},"y":{"docs":{},")":{"docs":{},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}}}}}}}},"]":{"docs":{},"}":{"docs":{"parameter_coercion.html":{"ref":"parameter_coercion.html","tf":0.006430868167202572}}}},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"_":{"docs":{},"]":{"docs":{"compiling_middleware.html":{"ref":"compiling_middleware.html","tf":0.0029411764705882353}}}}},"length":1399},"corpusTokens":["\"/\"","\"/\"))","\"/\")))","\"/\"))))","\"/api/admin/db\"})","\"/api/admin/db/:db/drop\"","\"/api/admin/db/users/drop\")","\"/api/admin/db/users/drop\"}","\"/api/admin/ping\",","\"/api/admin/ping\"})","\"/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\"}","\"/api/ping\"})","\"/api/user/1\"","\"/api/user/1\")","\"/api/user/:id\"","\"/api/user/:id\",","\"/favicon.ico\"})","\"/hello\")","\"/ping\"","\"/ping\"})","\"0.1.0","\"0.1.123\"]","\"0.3.0\"]","\"0.3.3\"]","\"1\"}","\"1\"})","\"1\"}}","\"1.9.0","\"1.9.660\"]","\"everyth","\"forbidden\"}","\"gener","\"ok\",","\"ok\"}","\"ok\"})","\"ok\"}))","\"pluggabl","\"tenant1\"","\"users\"}","#'reitit.core/rout","#(respond","#endpoint{:meta","#match{:templ","#methods{...}","#methods{:ani","#object[...],","#object[...]}","#object[...]},","#object[user$handler]}","#partialmatch{:templ","#{:admin}","#{:admin}}","#{:admin}})","#{:db","#{:id}","#{:id}}","#{route}}","%","%)","%))","%))))","&","'())","'[clojure.set","'[clojure.spec.alpha","'[clojure.spec.test.alpha","'[expound.alpha","'[reitit.coercion","'[reitit.coercion.spec","'[reitit.cor","'[reitit.r","'[reitit.spec","'[reitit.spec])","'[spec","'add","'get","(","(*","(*path).","(+","(:api","(:id)","(:request","(?","([\"/api\"","([\"/get","([...","([request","([request]","(and","(app","(blank?","(cat","(clojur","(clojure.core/fn","(clojure.core/or","(clojure.spec)","(clojure.spec),","(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","(coerc","(comp","(compiled)","(condp","(conj","(constantli","(cqr","(def","(default","(defn","(defprotocol","(e.g.","(effect","(fn","(fnil","(for","(handler","(if","(let","(match","(middleware/cr","(name","(nilabl","(non","(not","(onli","(option","(or","(r/match","(r/partial","(r/rout","(r/router","(records,","(reitit/match","(reitit/rout","(reitit/routes))","(requir","(respons","(ring/get","(ring/r","(ring/rout","(rout","(router","(s/def","(s/explain","(s/key","(s/valid?","(seq","(set!","(set/intersect","(some","(st/spec","(start","(stest/instru","(str","(updat","(via","...","...])","/:user","/:version/statu","/api/user/:id:","/bulk/:bulk","/public/*path","1,","1.8)","1.9.0","2","200","200,","2})","2},","2}})","3","3}}","403,","4x","50%","::acc","::admin]","::admin}]","::coerc","::db","::db]","::db]]","::db]}","::db}]","::dev","::drop","::i","::ipa)","::order","::ping","::ping)","::ping))","::ping]","::ping]]","::ping}","::ping}]","::ping}]]","::pong}]]","::request","::request}","::respons","::response}}","::role","::roles)]","::spec/raw","::tenant1])","::total","::user","::user)","::user))","::user]]]))","::users]","::users}]","::x","::y]))",":a",":admin",":admin]]}",":admin}",":api)]}",":api]]",":api]]}",":arg",":bodi",":body,",":body}",":child",":clojure.spec.alpha/spec",":clojure.spec.alpha/valu",":coerc",":coercion",":coercion)",":command",":compil",":conflict",":db",":db]]",":default",":delet",":delete)]",":delete,",":descript",":dev",":displace.",":expand",":form,",":gen",":gen.",":get",":get,",":handler",":handler)})",":handler.",":handler]}",":head,",":header",":into",":let",":linear",":lookup",":meta",":middlewar",":mix",":name",":options,",":opts)]",":param",":paramet",":parameters.",":parameters}]",":patch,",":path",":path)",":path.",":path]",":post",":post)]]",":prefix",":prepend,",":put,",":put.",":queri",":query,",":reitit.spec/arg)",":reitit.spec/path",":reitit.spec/path:",":reitit.spec/raw",":replac",":req",":request",":requir",":respons",":responses)",":result",":role",":rout",":router",":schema",":uri",":user/ord",":user/ping}]",":user/tenant1",":user/tenant1]",":user/user]",":user/user}",":user/user},",":user/user}]]",":wrap",":wrap.",":y",";","=","=>",">","?arg","[\"\"","[\"/:db\"","[\"/:user","[\"/:version/status\"]])","[\"/add","[\"/admin\"","[\"/api\"","[\"/api/:version/ping\"]]","[\"/api/admin/db\"","[\"/api/admin/db/:db/drop\"","[\"/api/admin/db/:db/stats\"","[\"/api/admin/users\"","[\"/api/orders/:id\"","[\"/api/ping\"","[\"/api/user/:id\"","[\"/bulk/:bulk","[\"/db\"","[\"/dev","[\"/drop\"","[\"/ping\"","[\"/ping\"]","[\"/pong\"","[\"/pong\"]]","[\"/public\"","[\"/public/*path\"]","[\"/stats\"","[\"/user/:id\"","[\"/users\"","[\"pong\"]]])","[\"tenant1\"","[#(wrap","[%]","[...","[0]","[1]","[::acc]}]","[::admin],","[::admin]}","[::api","[::api]","[::api]}","[::db]","[::roles]","[::total]))","[::x","[:api","[:command","[:rout","[:routes]","[:user/p","[[\"/api\"","[[\"/api/admin\"","[[\"/api/ping\"","[[\"/ping\"","[[\"/ping\"]","[[\"/users/:us","[[#object[user$wrap]","[[:queri","[[type","[[wrap","[])","[]))","[]}}]]","[_]","[action","[add","[clojur","[coercer","[coercion/gen","[expound","[get","[handler","[handler]","[interceptor]}}])","[metosin/reitit","[metosin/spec","[org.clojure/clojur","[org.clojure/clojurescript","[org.clojure/spec.alpha","[path","[request]","[requir","[respons","[thi","[this])","[wrap","[x","[{:key","[{{{:key","^:replac","^^^^^^","_]","`reitit.coercion.protocol/coercion`","`reitit/router)","acc","access","accumul","act","action","actual","ad","add","admin}","admin}}","adopt","allow","alpha17\"]","alpha19\"]","alpha20\"]","anonym","api.","app","app:","append","appli","applic","approaches,","arbitrari","arg","args.","argument","arguments:","ariti","ask","async","at:","author","avail","awesom","base","basic","befor","below","best","better.","bi","bootstrapping:","both","build","built","call","callback.","catch","chain","child","class","clojur","clojure(script)","clojure.core/string?","clojure.lang.exceptioninfo:","clojure.spec","clojurescript,","closur","code","code,","coerc","coercer","coercion","coercion,","coercion.","coercion/gen","coercion])","collections,","compil","compilation,","compiled.","compiler,","compilerexcept","compojur","configur","conflicit","conflict","conflicts!)","conflicts:","conform","conj","contain","correctly:","cqr","creat","created.","creation","custom","data","data,","data:","database),","db","db)","db]","db}","db}]","default","default,","defin","defined,","defined.","definit","demonstr","depend","dependeci","descript","detect","dev","develop","didn't","differ","direct","directli","done","driven","dynam","easi","easier","effect","element","else\")","enabl","enforc","ensur","error","especi","etc.)","ex","exact","exampl","except","exceptioninfo","expan","expand","expect","explicit","expound","expound/printer)","expound])","extend","extens","extern","extract","fail","fails,","fals","false)","fast","fast,","faster","fastest","first","flatten","flattened:","follow","following:","format","found.","function","function,","function.","functions,","functions.","futur","gen","gener","get","go:","good,","guard","handl","handler","handler:","handler]","handler])))","handler]]]]","handlers,","handlers.","handler}])))","handler}]]])))","handler}}]]])))","hash","hook","hook)","id","id\"]","id)","id))","id)))","id))))","id/ord","id/orders\"]","id]","id]]))","id}","id},","ignored.","implemen","implement","implementation.","in:","info","inform","initi","inject","inspect","instead","instrument","int?)","int?))","int?,","int?}}","int?}}}","interceptor","interceptor))","interceptor/middlewar","interceptor]","intern","interpret","introduc","introduct","it'","it.","it?","itself.","key","key,","keys:","keyword","kind","know","less","let'","level","librari","link","list","log","look","lookup","mani","manual","map","map,","map.","match","match)","match,","match.","match?","matched,","matches,","merg","merge.","message.","meta","meta,","method","method.","methods.","middlewar","middleware,","middleware.","middleware:","miss","mode?","mode?]","more.","mount","mount.\"","multipl","naiv","name","name!","name.","name:","name]","names:","namespac","need","nest","nil","nil,","nil]","node.j","normal","note","note:","on","opt","optim","optin","option","option.","options.","opts)","opts)]","opts]}","order\"","order]]","order]}}])","origin","otherwis","out*","overrid","overridden","param","paramet","parameter:","parameters.","parameters:","params]))","partial","partialmatch,","pass","path","path,","path])","pedest","perf","pluggabl","po","pre","predicate:","pretti","print","println","problems.","processing.","programamtically:","project:","protocol,","protocol.","protocol:","provid","public","r])","raise))))))","raise)))))))}))","raise]","raw","readi","reason","record","recurs","regress","reitit","reitit,","reitit.coercion.protocol/coercion","reitit.coercion.spec/speccoercion","reitit.coercion:","reitit.core/expand","reitit.core/expand)","reitit.core/match","reitit.core/rout","reitit.core/router:","reitit.core/throw","reitit.ring/get","reitit.ring/rout","reitit.spec","reitit/conflict","reitit])","relev","removed.","request","request)","request)))","request))))","request)))))","request.","request}]","requir","required)","resolut","resolv","respond","respons","response)]","response]","responses)","result","resut","retriev","return","revers","ring","ring,","ring])","role","roles)))","roles:","roles]}})))","rout","route))))","route,","route.","route:","router","router)","router,","router:","routes)","routes):","routes,","routes.","routes:","routing)","routing,","routing.","routing:","run","runtim","s/*explain","s])","same","satisfi","select","sequential)","set","set])","sever","shape","ship","shipped,","side","simpl","singl","small","snapshot\"]","someth","sourc","spec","spec/coercion}})))","spec:","spec])","specs.","st])","start","stats]]]]]))","stats}]]","statu","stest])","still,","str)})","string","string}","string}}","stuctur","submap","succeeds,","suitabl","support","swagger:","syntax","system.","take","tests.","thing","third","throw","thrown.","thrown:","time","time.","to,","to:","todo","too.","too:","tool","tools\"","tools.cor","tools])])","top","transform","tree","tree:","true","two","type","un","under","understood","unmount","unreach","until","us","used.","user","user\"","user]","user]}}]","usually,","val:","valid","valu","values.","vector","vector.","vectors,","version","version:","via","warning.","way","with?","without","work","worlds.","wrap","wrap.","written","x","y)}})}}]]","y]}","yield","{200","{::role","{:bodi","{:conflict","{:db","{:get","{:handler","{:id","{:interceptor","{:meta","{:middlewar","{:name","{:paramet","{:post","{:request","{:role","{:schema","{:statu","{:total","{:x","{method","{rout","{}"],"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\nFirst-class route meta-data\nBi-directional-routing\nRoute conflict resolution\nPluggable coercion (clojure.spec)\nBoth Middleware & Interceptors\nExtendable\nFast\n\nTo use Reitit, add the following dependecy to your project:\n[metosin/reitit \"0.1.0-SNAPSHOT\"]\n\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; :meta {: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; :meta {: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; :meta {: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; :meta {: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; :meta {: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; :meta {: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.html":{"url":"basics.html","title":"Route syntax","keywords":"","body":"Route Syntax\nRaw routes are defined as vectors, which have a String path, optional (non-sequential) route argument and optional child routes. Routes can be wrapped in vectors and lists and nil routes are ignored. Paths can have path-parameters (:id) or catch-all-parameters (*path).\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\nAs routes are just data, it's easy to create them programamtically:\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\nRouter\nRoutes are just data and to do actual routing, we need a Router satisfying the reitit.core/Router protocol. Routers are created with reitit.core/router function, taking the raw routes and optionally an options map. Raw routes gets expanded and optionally coerced and compiled.\nRouter 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\nRouter flattens the raw routes and expands the route arguments using reitit.core/Expand protocol. By default, Keywords are expanded to :name and functions are expaned to :handler. nil routes are removed. The expanded routes can be retrieved with router:\n(r/routes router)\n; [[\"/api/ping\" {:name :user/ping}]\n; [\"/api/user/:id\" {:name :user/user}]]\n\nPath-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\n(r/match-by-path router \"/hello\")\n; nil\n\n(r/match-by-path router \"/api/user/1\")\n; #Match{:template \"/api/user/:id\"\n; :meta {:name :user/user}\n; :path \"/api/user/1\"\n; :result nil\n; :params {:id \"1\"}}\n\nName-based routing\nAll routes which :name route data defined, can be matched by name.\nListing all route names:\n(r/route-names router)\n; [:user/ping :user/user]\n\nMatching by name:\n(r/match-by-name router ::user)\n; #PartialMatch{:template \"/api/user/:id\",\n; :meta {: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\nWe only got a partial match as we didn't provide the needed path-parameters. Let's provide the them too:\n(r/match-by-name router ::user {:id \"1\"})\n; #Match{:template \"/api/user/:id\"\n; :meta {: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\nRoute data\nRoutes can have arbitrary meta-data, interpreted by the router (via it's :compile hook) or the application itself. For nested routes, route data is accumulated recursively using meta-merge. By default, it appends collections, but it can be overridden to do :prepend, :replace or :displace.\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 [\"/:db\" {:parameters {:db String}}\n [\"/drop\" ::drop-db]\n [\"/stats\" ::db-stats]]]]]))\n\nResolved route tree:\n(reitit/routes router)\n; [[\"/api/ping\" {:interceptors [::api]\n; :name ::ping}]\n; [\"/api/admin/users\" {:interceptors [::api]\n; :roles #{:admin}\n; :name ::users}]\n; [\"/api/admin/db/:db/drop\" {:interceptors [::api ::db]\n; :roles #{:db-admin}\n; :parameters {:db String}\n; :name ::drop-db}]\n; [\"/api/admin/db/:db/stats\" {:interceptors [::api ::db]\n; :roles #{:db-admin}\n; :parameters {:db String}\n; :name ::db-stats}]]\n\nRoute data is returned with Match and the application can act based on it.\n(r/match-by-path router \"/api/admin/db/users/drop\")\n; #Match{:template \"/api/admin/db/:db/drop\"\n; :meta {:interceptors [::api ::db]\n; :roles #{:db-admin}\n; :parameters {:db String}\n; :name ::drop-db}\n; :result nil\n; :params {:db \"users\"}\n; :path \"/api/admin/db/users/drop\"}\n\nDifferent Routers\nReitit ships with several different implementations for the Router protocol, originally based on the awesome Pedestal implementation. router selects the most suitable implementation by inspecting the expanded routes. The implementation can be set manually using :router ROUTER OPTION.\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.\n\n\n:lookup-router\nFastest router, uses hash-lookup to resolve the route. Valid if no paths have path or catch-all parameters.\n\n\n:mixed-router\nCreates internally a :linear-router and a :lookup-router and used them to effectively get best-of-both-worlds. Valid if there are no CONFLICTING ROUTES.\n\n\n:prefix-tree-router\nTODO\n\n\n\nThe router name can be asked from the router\n(r/router-name router)\n; :mixed-router\n\n"},"route_conflicts.html":{"url":"route_conflicts.html","title":"Route conflicts","keywords":"","body":"Route conflicts\nMany routing libraries allow single path lookup could match multiple routes. Usually, first match is used. This is not good, especially if route tree is merged from multiple sources - routes might regress to be unreachable without a warning.\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 routes with conflicts:\n(require '[reitit.core :as reitit])\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(reitit/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(reitit/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"},"route_validation.html":{"url":"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.\nNOTE: Use of specs requires to use one of the following:\n\n[org.clojure/clojurescript \"1.9.660\"]\n[org.clojure/clojure \"1.9.0-alpha19\"]\n[clojure-future-spec \"1.9.0-alpha17\"] (Clojure 1.8)\n\nAt runtime\nIf route trees are generated at runtime (e.g. from external source like the database), one can use directly the clojure.spec functions.\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 something like expound to pretty-print the spec problems.\nFirst add a :dev dependency to:\n[expound \"0.3.0\"]\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\n(reitit/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\nValidating route data\nTODO\n"},"configuring_routers.html":{"url":"configuring_routers.html","title":"Configuring routers","keywords":"","body":"Configuring Routers\nRouters can be configured via options. Options allow things like clojure.spec validation for meta-data and fast, compiled handlers. 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:meta\nInitial expanded route-meta vector (default [])\n\n\n:expand\nFunction of arg opts => meta to expand route arg to route meta-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:conflicts\nFunction of {route #{route}} => side-effect 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"},"ring.html":{"url":"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:\n(-> app (ring/get-router) (reitit/routes))\n; [[\"/ping\"\n; {:handler #object[...]}\n; #Methods{:any #Endpoint{:meta {: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\nReverse 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, with a vector value of the following:\n\nring 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\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"},"dynamic_extensions.html":{"url":"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 dynamic 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) :meta ::roles)]\n (if (and (seq required) (not (set/intersection required roles)))\n {:status 403, :body \"forbidden\"}\n (handler request)))))\n\nMounted to an app via router meta-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 {:meta {: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"},"parameter_coercion.html":{"url":"parameter_coercion.html","title":"Parameter coercion","keywords":"","body":"Parameter coercion\nReitit provides pluggable parameter coercion via reitit.coercion.protocol/Coercion protocol, originally introduced in compojure-api. Reitit ships with reitit.coercion.spec/SpecCoercion providing implemenation for clojure.spec and data-specs.\nNOTE: Before Clojure 1.9.0 is shipped, to use the spec-coercion, one needs to add the following dependencies manually to the project:\n[org.clojure/clojure \"1.9.0-alpha20\"]\n[org.clojure/spec.alpha \"0.1.123\"]\n[metosin/spec-tools \"0.3.3\"]\n\nRing request and response coercion\nTo use Coercion with Ring, one needs to do the following:\n\nDefine parameters and responses as data into route meta-data, in format adopted from ring-swagger:\n:parameters map, with submaps for different parameters: :query, :body, :form, :header and :path. Parameters are defined in the format understood by the Coercion.\n:responses map, with response status codes as keys (or :default for \"everything else\") with maps with :schema and optionally :description as values.\n\n\nDefine a Coercion to route meta-data under :coercion\nMount request & response coercion middleware to the routes.\n\nIf the request coercion succeeds, the coerced parameters are injected into request under :parameters.\nIf either request or response coercion fails, an descriptive error is thrown.\nExample with data-specs\n(require '[reitit.ring :as ring])\n(require '[reitit.coercion :as coercion])\n(require '[reitit.coercion.spec :as spec])\n\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\"\n [\"/ping\" {:parameters {:body {:x int?, :y int?}}\n :responses {200 {:schema {:total pos-int?}}}\n :get {:handler (fn [{{{:keys [x y]} :body} :parameters}]\n {:status 200\n :body {:total (+ x y)}})}}]]\n {:meta {:middleware [coercion/gen-wrap-coerce-parameters\n coercion/gen-wrap-coerce-response]\n :coercion spec/coercion}})))\n\n(app\n {:request-method :get\n :uri \"/api/ping\"\n :body-params {:x 1, :y 2}})\n; {:status 200, :body {:total 3}}\n\nExample with specs\n(require '[reitit.ring :as ring])\n(require '[reitit.coercion :as coercion])\n(require '[reitit.coercion.spec :as spec])\n(require '[clojure.spec.alpha :as s])\n(require '[spec-tools.core :as st])\n\n(s/def ::x (st/spec int?))\n(s/def ::y (st/spec int?))\n(s/def ::total int?)\n(s/def ::request (s/keys :req-un [::x ::y]))\n(s/def ::response (s/keys :req-un [::total]))\n\n(def app\n (ring/ring-handler\n (ring/router\n [\"/api\"\n [\"/ping\" {:parameters {:body ::request}\n :responses {200 {:schema ::response}}\n :get {:handler (fn [{{{:keys [x y]} :body} :parameters}]\n {:status 200\n :body {:total (+ x y)}})}}]]\n {:meta {:middleware [coercion/gen-wrap-coerce-parameters\n coercion/gen-wrap-coerce-response]\n :coercion spec/coercion}})))\n\n(app\n {:request-method :get\n :uri \"/api/ping\"\n :body-params {:x 1, :y 2}})\n; {:status 200, :body {:total 3}}\n\n"},"compiling_middleware.html":{"url":"compiling_middleware.html","title":"Compiling middleware","keywords":"","body":"Compiling Middleware\nThe meta-data extensions are a easy way to extend the system. Routes meta-data can be transformed into any shape (records, functions etc.) in route compilation, enabling fast access at request-time.\nStill, we can do better. As we know the exact route that interceptor/middleware is linked to, we can pass the (compiled) route information into the interceptor/middleware at creation-time. It can extract and transform relevant data just for it and pass it into the actual request-handler via a closure - yielding faster runtime processing.\nTo do this we use middleware records :gen hook instead of the normal :wrap. :gen expects a function of route-meta router-opts => wrap. Middleware can also return nil, which effective unmounts the middleware. Why mount a wrap-enforce-roles middleware for a route if there are no roles required for it?\nTo demonstrate the two approaches, below are response coercion middleware written as normal ring middleware function and as middleware record with :gen. These are the actual codes are from reitit.coercion:\nNaive\n\nExtracts the compiled route information on every request.\n\n(defn wrap-coerce-response\n \"Pluggable response coercion middleware.\n Expects a :coercion of type `reitit.coercion.protocol/Coercion`\n and :responses from route meta, otherwise does not mount.\"\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 :meta :responses)\n coercion (-> match :meta :coercion)\n opts (-> match :meta :opts)]\n (if (and coercion responses)\n (let [coercers (response-coercers coercion responses opts)\n coerced (coerce-response coercers request response)]\n (coerce-response coercers request (handler request)))\n (handler request))))\n ([request respond raise]\n (let [response (handler request)\n method (:request-method request)\n match (ring/get-match request)\n responses (-> match :result method :meta :responses)\n coercion (-> match :meta :coercion)\n opts (-> match :meta :opts)]\n (if (and coercion responses)\n (let [coercers (response-coercers coercion responses opts)\n coerced (coerce-response coercers request response)]\n (handler request #(respond (coerce-response coercers request %))))\n (handler request respond raise))))))\n\nCompiled\n\nRoute information is provided via a closure\nPre-compiled coercers\nMounts only if :coercion and :responses are defined for the route\n\n(def gen-wrap-coerce-response\n \"Generator for pluggable response coercion middleware.\n Expects a :coercion of type `reitit.coercion.protocol/Coercion`\n and :responses from route meta, otherwise does not mount.\"\n (middleware/create\n {:name ::coerce-response\n :gen (fn [{:keys [responses coercion opts]} _]\n (if (and coercion responses)\n (let [coercers (response-coercers coercion responses opts)]\n (fn [handler]\n (fn\n ([request]\n (coerce-response coercers request (handler request)))\n ([request respond raise]\n (handler request #(respond (coerce-response coercers request %)) raise)))))))}))\n\nThe :gen -version has 50% less code, is easier to reason about and is 2-4x faster on basic perf tests.\n"}}} |